php脚本上的未定义变量

时间:2012-02-02 22:25:25

标签: php xml twitter

我在第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("&#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];
}
$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 =''之后我在上次添加之后;它运行脚本,但没有得到任何输出,也没有错误,问题出在哪里?

2 个答案:

答案 0 :(得分:3)

问题在于您尝试追加未定义的变量。

$tweetout .= "<div>$v</div>\n";

PHP会给你一个通知,因为在大多数情况下,这是因为你输入了变量名称。您没有收到任何错误,因为PHP假设您打算附加到null并继续。

要解决此问题,请在while循环之前定义$tweetout

$tweetout = '';

答案 1 :(得分:1)

你一定要添加一个

$tweetout = ""; 

在循环之前,附加到不存在的字符串是一个错误。

屏幕上没有任何内容的原因是$ first不包含#tomaskutaj,最后的if语句要求(以及那里的@tomaskutaj)打印任何内容。