2013-07-13 16 views
1

나는 preg_replace 기능을 대체 할 수있는 값의 배열이 있습니다preg_replace이다 검색

$attr = array('b','i','u','left','center','right'); 

foreach($attr as $a) { 
    // strip bbcode 
    $str = preg_replace('#\['.$a.'\](.*)\[/'.$a.'\]#im','$1',$str); 
} 
return $str; 

대신 foreach 문을 사용하여 루핑을 가능한 배제를 통해, 나는 대신에 img이 아닌 스트립 같은 것을하고 싶다. 이것이 가능한가?

답변

1

img 태그를 제외한 모든 태그를 제거 하시겠습니까? 이것을 사용하십시오 :

$str = preg_replace('#\[(?!/?img).+?]#im','',$str); 
+0

코드에 오류가 있었지만 패턴이 작동합니다. 'preg_replace() [function.preg-replace] : 구분 기호를 추가하여 고정 값으로 사용할 경우 구분 기호는 영숫자 또는 백 슬래시가 아니어야합니다. thanks btw – user949000

+0

아, 죄송합니다 ... 나는 PS에서 정규식 구분 기호가없는 PowerShell 프롬프트에서 정규식을 테스트하고 따옴표 만 사용하여 복사했습니다. 나는 구분 기호와 모드 수정자를 추가하여 후손에 대한 대답을 수정합니다. –