我有一个显示RSS Feeds Items的新闻门户.大约读取了50个来源,效果非常好.
只有一个源我总是得到一个空字符串. W3C的RSS验证器可以读取RSS源.甚至我的维也纳计划也收到数据
我能做什么?
这是我的简单代码:
$link = 'http://blog.bosch-si.com/feed/';
$response = file_get_contents($link);
if($response !== false) {
var_dump($response);
} else {
echo 'Error ';
}
解决方法:
服务该订阅源的服务器需要设置用户代理.你显然没有User Agent set in your php.ini,也没有在调用file_get_contents时设置它.
您可以通过stream context为此特定请求设置用户代理:
echo file_get_contents(
'http://blog.bosch-si.com/feed/',
FALSE,
stream_context_create(
array(
'http' => array(
'user_agent' => 'php'
)
)
)
);
或全局任何http调用:
ini_set('user_agent', 'php');
echo file_get_contents($link);
两者都会给你想要的结果.