簡體   English   中英

DOMDocument:查找div,獲取內容並在不使用div的情況下進行打印

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM