我在第30行注意到twetout是未定义的变量
<?php
$username = "tomaskutaj";/*
$limit = 5;
$feed = 'http://twitter.com/statuses/user_timeline.rss?screen_name='.$username.'&count='.$limit;*/
$feed ="http://search.twitter.com/search.rss?q=@tomaskutaj";
$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];
}
$x=1;
while (list(, $v) = each($mytweets)) {
$tweetout .= "<div>$v</div>\n";
if ($x==1){
$first=$tweetout;
};
$x++;
}
if ((strstr($first,'#tomaskutaj'))&&(strstr($first,'@tomaskutaj')))
echo($first);
?>
但是在我说完'$ tweetout =''之后我在上次添加之后;它运行脚本,但没有得到任何输出,也没有错误,问题出在哪里?
答案 0 :(得分:3)
问题在于您尝试追加未定义的变量。
$tweetout .= "<div>$v</div>\n";
PHP会给你一个通知,因为在大多数情况下,这是因为你输入了变量名称。您没有收到任何错误,因为PHP假设您打算附加到null
并继续。
要解决此问题,请在while
循环之前定义$tweetout
:
$tweetout = '';
答案 1 :(得分:1)
你一定要添加一个
$tweetout = "";
在循环之前,附加到不存在的字符串是一个错误。
屏幕上没有任何内容的原因是$ first不包含#tomaskutaj,最后的if语句要求(以及那里的@tomaskutaj)打印任何内容。