0

failed to open streamリモート Web ホストで次のコードを実行すると、取得し続けます。

$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 つのフィード (ニュース (Google) とブログ) で機能します。

4

1 に答える 1

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 制限が原因であるかどうかを確認します。私はローカルホストからテストしています。

リモートでテストすると、失敗します。これが理由です:

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

サーバーで http:// ラッパーが無効になっていることがわかります。したがって、サーバーに問題があります。サーバーホストでそれを修正してください。管理者に連絡してください。または、主なオプションは cURL です。

于 2013-02-26T16:08:04.733 に答える