回声问题中的功能

时间:2010-03-18 15:47:18

标签: php html echo

我错误地输出了一个echo语句。例如,当我做

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

它显示功能输出但是twitarea div的OUTSIDE。这种行为的原因可能是语法?

提前致谢

这是实际的功能

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>";
    } }

5 个答案:

答案 0 :(得分:3)

简单地说:

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

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

<?php

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

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

?>

或者,如果您可以修改fetchtwitter()的来源,请将其连接到return字符串而不是echo

答案 3 :(得分: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; 
}

答案 4 :(得分:0)

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

尝试在fetchtwitter()函数中使用return,而不是在那里使用echo。