为什么这不起作用:
$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 电视等。
但这个初始阶段不起作用。有什么帮助吗?
EDIT附加信息:
Errors:
warning: 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]: failed to open stream: HTTP request failed!
# warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "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 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)
(注意:一旦找到真正的答案,答案可能就没用了……)
当您解决 XML 问题(继续解决它!)时,请注意您还可以将 YQL 响应作为 JSON 返回。这是一个简单的例子:
$url = "http://query.yahooapis.com/v1/public/yql?q=select+%2A+"
. "from+html+where+xpath%3D%22%2F%2Fmeta%5B%40name%3D%27"
. "Keywords%27+or+%40name%3D%27Description%27%5D%22+and+"
. "url%3D%22http%3A%2F%2Fwww.cnn.com%22&format=json&diagnostics=false";
// Grab YQL response and parse JSON
$json = file_get_contents($url);
$result = json_decode($json, TRUE);
// Loop over meta results looking for what we want
$items = $result['query']['results']['meta'];
$metas = array();
foreach ($items as $item) {
$metas[$item['name']] = $item['content'];
}
print_r($metas);
给出一个类似的数组(屏幕上的文本被截断):
Array
(
[Description] => CNN.com delivers the latest breaking news and …
[Keywords] => CNN, CNN news, CNN.com, CNN TV, news, news online …
)
请注意,YQL 查询(在控制台中尝试一下 http://developer.yahoo.com/yql/console/?q=select%20*%20from%20html%20where%20xpath%3D%22%2F%2Fmeta%5B%40name%3D%27Keywords%27%20or%20%40name%3D%27Description%27%5D%22%20and%20url%3D%22http%3A%2F%2Fwww.cnn.com%22)与你的略有不同,以使 PHP 更简单。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)