0

最新のツイートの Twitter フィードを取得するために使用しようとしている以下のコードが機能しないのはなぜでしょうか?

コード:

<?
    $username = "readitforward";
    $limit = 5;
    $feed = 'http://twitter.com/statuses/user_timeline.rss?screen_name='.$username.'&count='.$limit;
    $tweets = file_get_contents($feed);

        $tweets = str_replace("&", "&", $tweets);   
        $tweets = str_replace("<", "<", $tweets);
        $tweets = str_replace(">", ">", $tweets);
        $tweet = explode("<item>", $tweets);
    $tcount = count($tweet) - 1;

for ($i = 1; $i <= $tcount; $i++) {
    $endtweet = explode("</item>", $tweet[$i]);
    $title = explode("<title>", $endtweet[0]);
    $content = explode("</title>", $title[1]);
        $content[0] = str_replace("&#8211;", "&mdash;", $content[0]);

        $content[0] = preg_replace("/(http:\/\/|(www\.))(([^\s<]{4,68})[^\s<]*)/", '<a href="http://$2$3" target="_blank">$1$2$4</a>', $content[0]);
        $content[0] = str_replace("$username: ", "", $content[0]);
        $content[0] = preg_replace("/@(\w+)/", "<a href=\"http://www.twitter.com/\\1\" target=\"_blank\">@\\1</a>", $content[0]);
        $content[0] = preg_replace("/#(\w+)/", "<a href=\"http://search.twitter.com/search?q=\\1\" target=\"_blank\">#\\1</a>", $content[0]);
    $mytweets[] = $content[0];
}

while (list(, $v) = each($mytweets)) {
    $tweetout .= "<div>$v</div>\n";
}
?>

出力エラー:

Warning: file_get_contents() [function.file-get-contents]: http:// wrapper is disabled in the server configuration by allow_url_fopen=0 in /data/24/1/0/139/1815302/user/1967139/htdocs/RIF/wp-content/themes/crown_readitforward2012/sidebar.php on line 93

Warning: file_get_contents(http://twitter.com/statuses/user_timeline.rss?screen_name=readitforward&count=5) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in /data/24/1/0/139/1815302/user/1967139/htdocs/RIF/wp-content/themes/crown_readitforward2012/sidebar.php on line 93

Warning: Variable passed to each() is not an array or object in /data/24/1/0/139/1815302/user/1967139/htdocs/RIF/wp-content/themes/crown_readitforward2012/sidebar.php on line 114

93 行目: $tweets = file_get_contents($feed);

114行目: while (list(, $v) = each($mytweets)) {

ここで何が間違っていましたか???

4

3 に答える 3

2

Twitter API の更新を確認してください。

$feed変数を次のように変更します。

$feed = 'http://api.twitter.com/1/statuses/user_timeline.rss?screen_name='.$username.'&count='.$limit;
于 2012-11-10T16:45:54.527 に答える
1

を開いphp.iniて有効にしallow_url_fopenます。これは ではできませんini_set()

または、cURL など、URL を要求する別の方法を使用します。

于 2012-04-20T13:17:10.123 に答える
1

allow_url_fopen がオフになっているため、別の方法でリモート ファイルを取得する必要があります。

http://php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen

代わりに cURL または他の php 拡張機能を使用できます。

http://php.net/manual/en/curl.examples-basic.php

2 番目のエラー チェック if(is_array($mytweets)) .. ループを実行する前に。

于 2012-04-20T13:15:12.287 に答える