使用php从网站获取DOM元素 [英] Get a Dom element from website using php

查看:0
本文介绍了使用php从网站获取DOM元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,我想从网站获取一个HTML节点,以便在我的网站上显示它,但我做不到。

这是我的代码。

$html = htmlentities(file_get_contents("http://stackoverflow.com/"));
$doc = new DOMDocument();
$doc->loadHTML($html);
$h1 = $doc->getElementsByTagName("title");
var_dump($h1);

这就是结果。

object(DOMNodeList)#2 (1) {
  ["length"]=>
  int(0)
}

请帮帮忙。 提前谢谢。

推荐答案

不需要在解析之前对html字符串应用htmlentities。如果这样做,所有尖括号都将被替换,解析器将不再找到任何标记。

也不需要使用file_get_contents加载文件,因为DOMDocument有方法可以执行此操作。

在您的评论中,您没有使用正确的方法加载具有URL(而不是HTML字符串)的HTML文件。

DOMDocument方法是DOMDocument::loadHTMLFile而不是DOMDocument::loadHTML

$doc = new DOMDocument();
$doc->loadHTMLFile("http://stackoverflow.com/");
$h1 = $doc->getElementsByTagName("title")->item(0)->textContent;
echo $h1, PHP_EOL;

请注意,您可以在此方法之前使用libxml_use_internal_errors(true);阻止显示不同的警告。

这篇关于使用php从网站获取DOM元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆