2010-05-31 5 views
0

나는 ereg에서 preg_match로 가져갈 필요가있는 작은 코드 조각이 있습니다. 여기에 코드가 있습니다.또 다른 PHP ereg 수정

하지만 EREG이되지 않는 한, 내가 정말 preg_match를 만들기 위해 좋아하는, 또는 같은 것입니다 :

function be_file_list($d, $x) { 
    foreach (array_diff(scandir($d), array('.', '..')) as $f) { 
     if (is_file($d . '/' . $f) && (($x) ? ereg($x.'$',$f) : 1)) { 
      $l[] = $f; 
     } 
    } 

    return $l; 
} 

이 코드는 꽤 (http://www.php.net/manual/en/function.scandir.php 소스) 보이지 않는 경우에도 예상대로 작동 .

나는 오후 내내이 모든 것을 망쳐 놓았으며 PC는 창밖으로 나옵니다. 나는 생각했을 텐데,

preg_match("/"$x.'$',$f"/") 

은 효과가 있지만 거푸집은 없다.

도움이 될 것입니다.

preg_match("/"$x.'$',$f"/") 

당신은 문자열 사이 .의 필요 :

건배 벤

+2

"작은 덩어리"에 대해서는 놀림의 대상이 아닙니다. 읽을 수없는 것을 최대화하기 위해 여전히 두세 개의 개행이 있습니다. –

답변

1

당신은 모든 잘못 ... 당신이 쓴

preg_match('/'.preg_quote($x, '/').'$/', $f) 

시도있어 vars, 그리고 당신은 잘못된 장소에 후행을 가지고 있습니다. 패턴을 따라야하고 피사체를 따라갈 필요가 없습니다.

0

모양이 glob 인 것처럼 보입니다. 디렉토리 읽기와 정규 표현식의 결합

+0

'glob'는 ** 정규 표현식을 사용하지 않습니다 **. – salathe

+0

@salathe 잘 정렬합니다. 영업 이익의 목적에 충분하다. –