2011-09-17 4 views
0
$tag = 'img'; 
$text = preg_replace('#</?'.$tag.'[^>]*>#is', '', $text); 

어떻게하면 preg_replace가 첫 번째 일치 ("img")를 무시하고 다른 것을 대체 할 수 있습니까?이 정규 표현식에서 첫 번째 일치를 무시하는 방법

+2

이것은 실제 HTML 구문 분석기를 사용하는 것이 매우 적절할 수있는 상황입니다. – lonesomeday

+1

PHP 정규식을 사용하지 마십시오. PHP DOM 항목을 사용하십시오. –

+2

관련 질문 : "[Strip 태그는 있지만 첫 번째 태그는 그대로 두십시오.] (http://stackoverflow.com/questions/7457650/strip-tags-but-keep-the-first-one)"및 "[How to use PHP는 DOM 문서?] (http://stackoverflow.com/questions/7457833/how-to-use-php-dom-document) " –

답변

0

당신은()에 루프를 사용하고 난 배열의 첫 번째 값을 방지하기 위해 1로 $ 설정, 그래서 뭔가 같은 :

for($i = 1; $tags < count($tags) ; $i++){ 
$text = preg_replace('#</?'.$tag.'[^>]*>#is', '', $text[$i]); 
} 

하지만 루프가 $text 값마다 그 실행 대체 할 것이다, 경우 당신은 문자열로 저장 .=으로 = 기호를 대체 할 또는 당신이 만들고 싶어 배열이 코드가 테스트되지 않았 $text[$i--]

메모와 함께 $text 교체!

관련 문제