Regex aint the right tool for this. 다음은 HTML 문서에서
$html = <<< HTML
<div class="parent">
<div>
<p>previous div<p>
</div>
blablabla
blablabla
blablabla
<div class="adsdiv">
<p>other content</p>
</div>
</div>
HTML;
콘텐츠 TextNodes입니다 DOM 방법으로 할 수 있습니다. 태그는 ElementNodes입니다. blablabla의 내용이있는 TextNode에는 부모 노드가 있어야합니다. TextNode 값을 가져 오는 경우, 우리는 그것을, 펑키 한 라이너 아니다 당신이 adsdiv
$dom = new DOMDocument;
$dom->loadHTML($html);
$xPath = new DOMXPath($dom);
$nodes = $xPath->query('//div[@class="adsdiv"]');
foreach($nodes as $node) {
foreach($node->parentNode->childNodes as $child) {
if($child instanceof DOMText) {
echo $child->nodeValue;
}
};
}
네의 class
속성으로 div
의 인 parentNode의 모든 TextNode을한다고 가정하지만 그것은 또한 두통의 더 적은이고 HTML 문서를 확실하게 제어 할 수 있습니다. XPath에의 쿼리 힘을 모으고, 우리는 나는 그것이 deliberatly 자세한하지만 DOM을 사용하는 방법을 설명하기 위해 유지
$nodes = $xPath->query('//div[@class="adsdiv"]/../text()');
foreach($nodes as $node) {
echo $node->nodeValue;
}
위를 단축 할 수 있었다.
정확히 일치하는 HTML 텍스트를 정확히 설명해주십시오. – ULysses