使用DOM Php标记的文本

使用DOM Php标记的文本,第1张

概述嘿, 考虑我有以下的html语法 <p>xyz</p><p>abc</p> 我想使用DOM检索文本(xyz和abc). 这是我的代码. <?php$link='http://www.xyz.com';$ret= getLinks($link);print_r ($ret);function getLinks($link){ /*** return array ***/ 嘿,
考虑我有以下的HTML语法
<p>xyz</p><p>abc</p>

我想使用DOM检索文本(xyz和abc).

这是我的代码.

<?PHP$link='http://www.xyz.com';$ret= getlinks($link);print_r ($ret);function getlinks($link){    /*** return array ***/    $ret = array();    /*** a new dom object ***/    $dom = new domdocument;    /*** get the HTML (suppress errors) ***/    @$dom->loadHTML(file_get_contents($link));    /*** remove silly white space ***/    $dom->preserveWhiteSpace = false;    /*** get the links from the HTML ***/    $text = $dom->getElementsByTagname('p');/*** loop over the links ***/    foreach ($text as $tag)    {        $ret[] = $tag->INNERHTML;    }    return $ret;}?>

但我得到一个空洞的结果.我在这里徘徊.?

解决方法 要禁止解析错误,请不要使用
@$dom->loadHTML(file_get_contents($link));

libxml_use_internal_errors(TRUE);

此外,没有理由使用file_get_contents. DOM可以从远程资源加载.

libxml_use_internal_errors(TRUE);$dom->loadHTMLfile($link);libxml_clear_errors();

此外,标记名称区分大小写.您正在查询< P>当代码段包含< p>时.改成

$text = $dom->getElementsByTagname('p');

最后,没有INNERHTML.用于获取它的用户态解决方案是

> How to get innerHTML of DOMNode?

您可以使用获取outerHTML

$ret[] = $dom->saveHTML($tag); // requires PHP 5.3.6+

要么

$ret[] = $dom->saveXml($tag); // that will make it XML compliant though

要获取P标记的文本内容,请使用

$ret[] = $tag->nodeValue;
总结

以上是内存溢出为你收集整理的使用DOM Php标记的文本全部内容,希望文章能够帮你解决使用DOM Php标记的文本所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1104561.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存