繁体   English   中英

使用DOMXPATH的PHP额外HREF

[英]Php extra HREF using DOMXPATH

<a class="_tr" href="/shopping/product/4889160295225917760/reviews?q=0028400047906&amp;sa=X&amp;ved=0ahUKEwiHjMGfo8_UAhUU5mMKHSK2BYUQvCQIYw">

我试图只使用$nodeList = $xpath->query("//a[@href]");

我似乎无法使它正常工作,我只需要href值,稍后我就将其解析为额外的4889160295225917760

在回显以上内容时,我可以空白屏幕

这是我得到的

<?php
$page = file_get_contents('https://www.google.com/search?q=0028400047906');
$doc = new DOMDocument();
$doc->loadHTML($page);   
$xpath = new DOMXPath($doc);
$test = $xpath->query('//a[@class="_tr"]');
$href = $test->item(0)->getAttribute("href");
echo explode("/", $href)[3];
?>`

我正在做一些测试,然后回到步骤1,发现file_get_contents从Google搜索结果中什么都没检索到,这是一个空屏幕

这可能行得通,最近我对xpath做了很多->

$nodelist = $xpath->evaluate("string(/a/@href)", NULL, FALSE);

这可以在xml文件中使用,但不确定是否可以与您的html一起使用。

如果file_get_contents('https://...' )没有检索到任何内容,则可能是因为运行时配置设置allow_url_fopen禁止了通过URL打开外部文件。 您可以使用ini_get('allow_url_fopen')检查其值,如果已启用,则应返回真实值,例如"1" ;如果已禁用,则返回假值,例如"0"或空字符串""

您需要访问系统范围的php.ini (或httpd.conf )才能更改此设置,或与系统管理员联系。

如果无法更改设置,则需要使用cURL之类的东西来检索URL的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM