안녕하세요. 제 질문을 보아 주셔서 감사합니다. HTML 스 니펫에서 일부 데이터를 가져와야합니다. 이 소스는 신뢰할 수있는/구조화 된 소스이므로이 HTML에서 regex를 사용하는 것이 좋습니다. 돔 및 PHP의 다른 고급 기능은 과잉입니다.PHP - DIV 태그의 내용을 가져 오는 정규식
다음은 HTML 스 니펫의 형식입니다.
<div id="d-container">
<div id="row-custom_1">
<div class="label">Type</div>
<div class="content">John Smith</div>
<div class="clear"></div>
</div>
</div>
위의 두 DIV 태그에는 ID가 설정되어 있습니다. div 태그처럼 여러 행 custom_1이있을 수 있으므로이 태그를 이스케이프 처리해야합니다.
실제로 저는 정규 표현식에서 매우 가난하므로 위의 HTML 스 니펫에서 John Smith에게 도움을 요청합니다.
이
<div * id="row-custom_1" * > * <div * class="content" * >GRAB THIS </div>
과 같이 될 수 있지만 정규식에 그것을하는 방법을 모르겠어요. John Smith 부분에 html이 포함되지 않습니다. 그것은 모든 HTML을 제거하고 위의 형식으로 데이터를 제공하는 신뢰할 수있는 출처에서 온 것입니다.
어쨌든 정규식은 HTML을 처리하는 좋은 방법이 아닙니다. 도움을 주셔서 감사합니다.
30 분 후 바로 편집 : 많은 멋진 사람들이 HTML 파서를 사용하도록 제안했습니다. 매력처럼 일했다. 그래서 누군가가 비슷한 질문을하는 경우, 바보 같은 질문 작성자로서, 나는 직업에 대한 DOM을 사용하는 것이 좋습니다거야.
에 오신 것을 환영합니다! RegEx를 사용하여 HTML을 구문 분석하지 마시기 바랍니다. [당신을 미치게 만듭니다] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454) . 대신 [HTML 구문 분석기] (http://stackoverflow.com/questions/292926/robust-mature-html-parser-for-php)를 사용하십시오. –
@ 트루트 : 예, 동의합니다. 나는 이것을 묻기 전에 여기에서 많은 질문을 읽었고, 내가하려고하는 것이 잘못되었다는 것을 깨달았다. 하지만 여기서 HTML 파서를 사용하는 것에 대해 궁금합니다. 사용자의 이름을 페이지의 HTML 제목을 설정하여 각 페이지로드시 일부 덤프를 실행시키려는 시도는 매우 좋은 생각이 아닙니다. html 구조는 동일해야합니다. 다시 한번 감사드립니다. –
소스가 "신뢰할 수있는"경우에도 여전히 유효한지 확인해야합니다. HTML 파서를 사용하십시오 –