【发布时间】:2011-01-25 11:39:26
【问题描述】:
这怎么不行:
$url = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20xpath%3D%22%2F%2Fmeta%22%20and%20url%3D%22http://www.cnn.com%22&format=xml&diagnostics=false";
$xml = (simplexml_load_file($url))
我收到多个错误,告诉我 HTTP 请求失败。最终我想将此文件中的结果放入一个数组中,例如
描述 = CNN.com 提供最新的突发新闻等。
关键字 = CNN、CNN 新闻、CNN.com、CNN 电视等。
但是这个初始阶段不起作用。有什么帮助吗?
编辑 附加信息:
错误:
警告:simplexml_load_file(http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20xpath%3D%22//meta%22%20and%20url %3D%22http://www.cnn.com%22&format=xml&diagnostics=false) [function.simplexml-load-file]:打开流失败:HTTP 请求失败! # 警告:simplexml_load_file() [function.simplexml-load-file]:I/O 警告:未能加载外部实体“http://query.yahooapis.com/v1/public/yql?q=select%20*% 20from%20html%20where%20xpath%3D%22//meta%22%20and%20url%3D%22http://www.cnn.com%22&format=xml&diagnostics=false"
- 来自我的 phpinfo(): allow_url_fopen 开启 开启
- PHP 版本 5.2.11
- 认为有效 (http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20xpath%3D%22//meta%22%20and%20url%3D%22http://www.cnn.com%22&format=xml&diagnostics=false )
【问题讨论】:
-
我在本地 xampp 安装上对此进行了测试,但无法重现您的错误消息。我的脚本:pastie.org/2895218。您能否尝试在浏览器中打开请求的页面,将其保存为 test.xml,将其上传到您的服务器并尝试
simplexml_load_file("test.xml");?当你尝试这个时,你会得到同样的错误吗? -
我尝试了你的脚本(没有运气),但是按照你的建议使用了一个本地文件,它确实有效!那么这是什么意思?感谢您迄今为止的大力帮助...
-
hmmm...您的服务器 - oder php-settings 一定有问题 - 但我不知道是什么... 再给我一些时间:我会回来的
-
您使用的是什么版本的 libxml? (
phpinfo()会告诉你) -
在脚本开头添加
error_reporting(-1);,同时检查phpinfo(),确保“http”出现在“Registered PHP Streams”部分。