我正在寻找构建一个 PHP 脚本来解析 HTML 中的特定标签。我一直在使用这个代码块,改编自这个tutorial:
<?php
$data = file_get_contents('http://www.google.com');
$regex = '/<title>(.+?)</';
preg_match($regex,$data,$match);
var_dump($match);
echo $match[1];
?>
该脚本适用于某些网站(例如上面的 google),但是当我尝试使用其他网站(例如,freshdirect)时,我收到此错误:
“警告:file_get_contents(http://www.freshdirect.com) [function.file-get-contents]: 无法打开流: HTTP 请求失败!"
我见过很多很棒的建议在 StackOverflow 上,例如启用extension=php_openssl.dll
在 php.ini 中。但是(1)我的 php.ini 版本没有extension=php_openssl.dll
在其中,以及(2)当我将其添加到扩展部分并重新启动 WAMP 服务器时,按照此thread,仍然没有成功。
有人介意指出我正确的方向吗?非常感谢!
它只需要一个用户代理(实际上是“任何”,任何字符串就足够了):
file_get_contents("http://www.freshdirect.com",false,stream_context_create(
array("http" => array("user_agent" => "any"))
));
See 更多的选择.
当然,你可以设置user_agent在你的ini中:
ini_set("user_agent","any");
echo file_get_contents("http://www.freshdirect.com");
...但我更喜欢对下一个从事该工作的程序员明确说明。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)