그래, 정규 표현식을 사용하기 때문에 일부 html 파일의 특정 패턴과 일치 시키려고합니다. 여기에는 preg_match 문의 :PHP preg_match - 일치하는 html 요소
preg_match('@<'.$htmlElementType.' id\s*=\s*"{{ALViewElement_'.$this->_elementId.'}}".*>[\s\S]*</'.$htmlElementType.'(>)@i', $htmlString, $newMatches, PREG_OFFSET_CAPTURE)
이 명확하기는,이의 ID로 HTML 요소를 일치하도록 시도 {{ALViewElement _ *}.} 그러나 또한 예를 들어 만약을 위해, 닫는 태그 자체를 종료 할 필요가 $ htmlElementType은 "section"이며 "/ section>"으로 끝납니다. 우리가 HTML에서 섹션 요소 이상이 있고 또한 닫는/섹션이있는 경우
<section id="{{ALViewElement_resume}}">
<!--{{RESUME_ADD_CHANGE_PIECE}}-->
<!--{{RESUME}}-->
</section>
문제는 다음과 같습니다
내 HTML은 예상대로 작동, 거기에 다른 아무것도 그냥이처럼 보였다 경우 >. 예 :<section id="{{ALViewElement_resume}}">
<!--{{RESUME_ADD_CHANGE_PIECE}}-->
<!--{{RESUME}}-->
</section>
<div>
</div>
<section>
HEY THIS IS ME
</section>
이 경우 전체 mach는 위의 모든 것입니다. 그러나 나는 그걸 멈추고 싶다. 나중에 내 코드에서 해당 끝 태그에있는 마지막 위치가 필요하기 때문에 중요합니다.
어떻게이 정규 표현식을 조금 바꿀 수 있었는지 생각해보십시오.
도움 주셔서 감사합니다.
** HTML을 구문 분석하는 정규 표현식을 사용하지 마십시오
또 다른 방법 :있는 DOMDocument로합니다. 정규식으로 HTML을 안정적으로 구문 분석 할 수는 없으며 슬픔과 좌절을 당할 것입니다. HTML이 예상과 다르게 변경되면 코드가 손상됩니다. 이미 작성, 테스트 및 디버깅 된 PHP 모듈을 사용하여 HTML을 올바르게 구문 분석하는 방법의 예는 http://htmlparsing.com/php를 참조하십시오. –