簡體   English   中英

如何用php DOMDocument輸出純文本?

[英]How to output plain text with php DOMDocument?

我正在使用以下代碼(感謝Lawrence )來解析HTML表:

<?php
$html = file_get_contents('http://www.example.com');
$dom = new DOMDocument();
@$dom->loadHTML($html);

//TUE 1 1 4.37 6.39 1.08 5.35 9.18 6.00 1.30 6.30 7.42 9.40                 
echo '
<table>
    <tr>';
foreach($dom->getElementsByTagName('table') as $table) {
    echo innerHTML($table->getElementsByTagName('tr')->item(9));
}
echo '
    </tr>
</table>';

function innerHTML($current){
    $ret = "";
    $nodes = @$current->childNodes;
    if(!empty($nodes)){
        foreach($nodes as $v){
            $tmp = new DOMDocument();
            $tmp->appendChild($tmp->importNode($v, true));
            $ret .= $tmp->saveHTML();
        }
        return $ret;
    }
    return;
}
?>

問題是它輸出原始的HTML代碼,那么如何輸出純文本?

我嘗試了這些更改,但是沒有用:

return $ret->textContent;
return $ret->nodeValue;
return $ret->plaintext;

echo innerHTML($table->getElementsByTagName('tr')->item(9)->textContent);
echo innerHTML($table->getElementsByTagName('tr')->item(9)->nodeValue);
echo innerHTML($table->getElementsByTagName('tr')->item(9)->plaintext);

解決方案實際上非常簡單-strip_tags函數。

echo strip_tags(innerHTML($table->getElementsByTagName('tr')->item(9)));

它采用該值並刪除所有HTML代碼,從而得到純文本值。

html2text庫會將您的html內容轉換為文本,它使用PHP的DOM方法,並迭代所有元素並從給定的HTML中提取文本

用法:

$ text = convert_html_to_text($ html);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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