我正试图从DOM对象中获取div的内容,我正在使用以下代码。$url
是一个有效的字符串url,如果我把它放在浏览器中,它会打开一个包含我要查找的DIV的页面。
$url
是一个字符串,例如:
$url = 'http://api.testdev.com/testpage.html';
代码
$dom = new DOMDocument();
$dom->loadHTML($url);
$xpath = new DOMXPath($dom);
$rawData = $xpath->query('//div[contains(@class, ''listing-products'')]');
下面我试图使用正则表达式//div[contains(@class, ''listing-products'')]
:来针对HTML代码
<div class="listing-products right-content">
我只是得到了一个如下所示的空数组,日志、屏幕或浏览器控制台中都没有错误。
DOMNodeList Object
{
[length] => 0
}
我怀疑我的正则表达式模式不是100%正确的,有人能告诉我正确的方向吗?
问题是,在我使用$dom->loadHTML
的地方,我传递了一个URL字符串,而不是函数期望的HTML。为了解决这个问题,我用file_get_contents
函数包装了$url
变量,该函数已经解决了这个问题。
旧代码:
$dom->loadHTML($url);
新的工作代码:
$dom->loadHTML(file_get_contents($url));