在我的远程虚拟主机上运行以下代码时继续获取failed to open stream
。
$feed = simplexml_load_string(file_get_contents('http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=kratteteast&count=1'), 'SimpleXMLElement', LIBXML_NOCDATA);
来自localhost
每次都有效。
有什么想法吗?
修改:它适用于以相同方式访问的其他2个Feed(新闻(Google)和博客)。
答案 0 :(得分:0)
Twitter默认支持localhost。在localhost之外,在twitter api中,您必须将域设置为您使用窗口小部件的域。
例如,我这样做了:
* .stewardxpress.com,*。ihnbc.com
您可以包含以逗号分隔的多个域。当您在这些域上使用窗口小部件时,Twitter会识别它。除此之外,它只会识别localhost。
我希望这会对你有所帮助。
我从我的角度运行你的脚本。
$feed = simplexml_load_string(file_get_contents('http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=kratteteast&count=1'), 'SimpleXMLElement', LIBXML_NOCDATA);
print_r ( $feed ) ;
它返回:
SimpleXMLElement Object ( [@attributes] => Array ( [version] => 2.0 ) [channel] => SimpleXMLElement Object ( [title] => Twitter / KrattetEast [link] => http://twitter.com/KrattetEast [description] => Twitter updates from Tornekrattet Øst / KrattetEast. [language] => en-us [ttl] => 40 [item] => SimpleXMLElement Object ( [title] => KrattetEast: @Erlendnr Kanskje her: http://t.co/mZ05VHkIxz [description] => KrattetEast: @Erlendnr Kanskje her: http://t.co/mZ05VHkIxz [pubDate] => Wed, 27 Feb 2013 14:51:08 +0000 [guid] => http://twitter.com/KrattetEast/statuses/306778498259902464 [link] => http://twitter.com/KrattetEast/statuses/306778498259902464 ) ) )
检查您的PHP安装和配置。查看您的远程服务器是否以任何方式阻止了跨域访问,或者相同的Twitter限制正在发挥作用。我是从localhost测试的。
当我测试遥控器时,我失败了。这就是原因:
file_get_contents(): http:// wrapper is disabled in the server configuration by allow_url_fopen=0
您可以看到服务器中禁用了http://包装器。所以你有一个服务器问题。修复服务器主机。联系管理员。或者您的主要选项是cURL。