2014-06-07 4 views
-1

HTML 부분을 찾아서 대체하는 코드 PHP을 작성하려고합니다.
시작 지점과 끝 지점은 <!--top-index-start--> and <!--top-index-end-->이고 코드는 HTML입니다.
PHP 코드가 찾아서 양식의 텍스트 영역에서 HTML 코드로 바뀌면 더 이상 찾을 수 없습니다. it cant find it anymore으로모든 html과 일치하는 reg 표현

$pattern = '/<!--top-index-start-->(.*?)<!--top-index-end-->/'; 
$replacement = '<!--top-index-start-->' . $_POST['editor1'] . '<!--top-index-end-->'; 
$indexcontent = preg_replace($pattern, $replacement, $indexcontent); 
+1

아무 것도 해보지 않으셨습니까? 그렇다면 –

답변

1

, 당신은 당신이 <!--top-index-start--><!--top-index-end-->의 콘텐츠를 찾을 cannnot 것을 의미?

확실히, 당신은 그것을 완전히 대체했습니다. 캡쳐 그룹을 거꾸로 둔 것처럼 보입니다. 이 시도 :

$regex = "~(<!--top-index-start-->).*?(<!--top-index-end-->)~"; 
$replacement = "\1".$_POST['editor1']."\2"; 
$indexcontent = preg_replace($regex, $replacement, $indexcontent); 

설명 정규식에서

캡처 괄호 그룹 1 및 대체 문자열 2. 당신의 상단과 끝 구분 기호를 포착, 당신은 \1\2을 구축 이러한 참조 바꿔 놓음.

+0

코드를 살펴보십시오. 감사합니다. 수정 자의 문제였습니다. 모든 내부에 일치시키기 위해 's'수식어가 필요했습니다. *? –

관련 문제