[英]DOMDocument : Find div, get contents and print without div
我想使用DOMDocument或其他建議的方法在wordpes中執行以下操作:
我將此HTML保存在變量中:
<div id="gallery-3232" class="gallery gallery-3232">
<li><a href=""><img src="" alt="" /></li>
<li><a href=""><img src="" alt="" /></li>
<li><a href=""><img src="" alt="" /></li>
<li><a href=""><img src="" alt="" /></li>
</div>
我想最后得到一個包含該變量的變量:
<li><a href=""><img src="" alt="" /></li>
<li><a href=""><img src="" alt="" /></li>
<li><a href=""><img src="" alt="" /></li>
<li><a href=""><img src="" alt="" /></li>
我該如何執行但沒有javascript。 與PHP配合使用。
謝謝你
我剛剛測試了一下,我認為這就是您所需要的。 基本上將HTML加載到DOMDocument中,通過ID獲取所需的元素,然后遍歷其子節點並輸出:
$html = '<div id="gallery-3232" class="gallery gallery-3232">
<li><a href=""><img src="" alt="" /></li>
<li><a href=""><img src="" alt="" /></li>
<li><a href=""><img src="" alt="" /></li>
<li><a href=""><img src="" alt="" /></li>
</div>
';
$doc = new DomDocument();
$doc->loadHtml($html);
$div = $doc->getElementById('gallery-3232');
$output = '';
foreach($div->childNodes as $element)
{
$output .= $element->ownerDocument->saveHtml($element);
}
echo $output;
$source = '<div id="gallery-3232" class="gallery gallery-3232">
<li><a href=""><img src="" alt="" /></li>
<li><a href=""><img src="" alt="" /></li>
<li><a href=""><img src="" alt="" /></li>
<li><a href=""><img src="" alt="" /></li>
</div>';
$list = new DOMDocument();
$list->loadHTML($source);
$listItems = $list->getElementsByTagName('li');
$listString = "";
foreach ($listItems as $list) {
$listString .= $list->C14N();
}
echo $listString;
這是使用正則表達式的一種快速而骯臟的方法:
$string = preg_replace('~</?div[^>]*>~', '', $string);
注意:就像我說的那樣,這是一種快速而骯臟的方法。 如果您確定自己的輸入-使用此。 但是,如果要過濾不確定的輸入,最好對它進行正確的解析。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.