0

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 个提要(新闻(谷歌)和博客)。

4

1 回答 1

0

Twitter 默认支持 localhost。在本地主机之外,在 twitter api 中,您必须将域设置为您使用小部件的域。

例如,我这样做了:

*.stewardxpress.com, *.ihnbc.com

您可以包含多个以逗号分隔的域。当您在这些域上使用小部件时,twitter 会识别它。除此之外,它只会识别本地主机。

我希望这可以帮助你。

编辑

我从头开始运行你的脚本。

$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 限制正在发挥作用。我从本地主机测试。

当我测试遥控器时,我失败了。这就是为什么:

file_get_contents(): http:// wrapper is disabled in the server configuration by allow_url_fopen=0

您可以看到 http:// 包装器在服务器中被禁用。所以你有一个服务器问题。用服务器主机修复它。联系管理员。或者您的主要选择是 cURL。

于 2013-02-26T16:08:04.733 回答