我想知道为什么我试图用来提取最新推文的 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("–", "—", $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)) {
我在这里做错了什么???
查看 Twitter API 更新。
将$feed
变量更改为:
$feed = 'http://api.twitter.com/1/statuses/user_timeline.rss?screen_name='.$username.'&count='.$limit;
关闭,因此您必须以另一种方式获取远程文件。
http://php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen
你可以使用 cURL 或其他 PHP 扩展。
http://php.net/manual/en/curl.examples-basic.php
对于第二个错误,请在执行循环之前检查if(is_array($mytweets)) ..
打开php.ini
并启用allow_url_fopen
。这不能用ini_set()
来完成。
或者,使用其他方法来请求 URL,例如 cURL。