我使用此代码(谢谢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);
答案 0 :(得分:2)
解决方案实际上非常简单 - strip_tags功能。
echo strip_tags(innerHTML($table->getElementsByTagName('tr')->item(9)));
它获取值并删除所有HTML代码,从而产生纯文本值。
答案 1 :(得分:0)
html2text库会将您的html内容转换为文本,它使用PHP的DOM方法,并迭代所有元素并从给定的HTML中提取文本
用法:
$ text = convert_html_to_text($ html);