0

我对 echo 语句输出错误有一点问题。例如,当我这样做时

echo "<div id=\"twitarea\">" . fetchtwitter($rss) . "</div>";

它显示函数输出,但在 twitarea div 之外。这种行为的原因可能是语法吗?

提前致谢

这是实际功能

require_once('includes/magpie/rss_fetch.inc');
$rssaldelo = fetch_rss('http://twitter.com/statuses/user_timeline/12341234.rss');
function fetchtwitter($rsskey){
foreach ($rsskey->items as $item) {
    $href = $item['link'];
    $title = $item['title'];
    print "<li class=\"softtwit\"><a href=" . $href . "    target=\"_blank\">$title</a></li><br>";
    } }
4

5 回答 5

3

简单地 :

<?php
echo "<div id=\"twitarea\">";
fetchtwitter($rss);
echo "</div>";
?>

fetchtwitter($rss) 正在回显输出(它不返回它)。

这样您就不必修改 fetchtwitter()。

于 2010-03-18T15:56:13.867 回答
1

fetchtwitter()可能echo()自己做一个,而不是返回字符串。echo在打印字符串之前,在准备整个字符串以供输出时执行该函数。

于 2010-03-18T15:48:26.747 回答
1

fetchtwitter(...) 是否将输出直接写入浏览器而不是返回它?尝试类似:

<?php

ob_start();
fetchtwitter($rss);
$twitter = ob_get_clean();

echo "<div id=\"twitarea\">" . $twitter . "</div>";

?>

或者,如果您可以修改 的来源fetchtwitter(),则将其与return字符串连接,而不是echo对其进行 ing。

于 2010-03-18T15:48:51.253 回答
0

你可以试试分隔符也许有帮助

$twitter = fetchtwitter($rss);
ob_start();
echo <<<HTML;
<div id="twitarea">$twitter</div>
HTML;
echo ob_get_clean();

更新您也可以像这样修改您的功能

require_once('includes/magpie/rss_fetch.inc');
$rssaldelo = fetch_rss('http://twitter.com/statuses/user_timeline/12341234.rss');
function fetchtwitter($rsskey){ 
  $bfr =""; 
  foreach ($rsskey->items as $item){
    $href = $item['link'];
    $title = $item['title'];
    $bfr .= "<li class=\"softtwit\"><a href=" . $href . "> target=\"_blank\">$title</a></li><br>";
  } 
  return $bfr; 
}
于 2010-03-18T15:58:27.520 回答
0

如果你没有看到我的评论。

尝试在你的函数中使用 returnfetchtwitter()而不是你在那里的 echo。

于 2010-03-18T16:01:50.003 回答