将“输出”存储到“输出”

时间:2012-06-10 18:28:08

标签: php

echo '<table border=\'0\' cellpadding=\'0\' cellspacing=\'0\'>';

for ($y=$startY;$y<$startY+$fieldHeight;$y++) {
    echo '<tr>';
    for ($x=$startX;$x<$startX+$fieldWidth;$x++) {
        //echo '(' . $x . ',' . $y . ')';
        echo '<td><img src=\'tiles/' . (isset($map[$x][$y]['terrain']) ? $map[$x][$y]['terrain'] : 'water') . '.png\' alt=\'\' /></td>';
    }
    echo '</tr>';
}

echo '</table>';

此数据将通过jQuery调用进行更新。我只是在寻找一种简单的方法来将上面的输出存储在一个变量中。我怎么能这样做?

4 个答案:

答案 0 :(得分:3)

ob_start();
// echo what you want
$content = ob_get_contents();
ob_end_clean();

ob_get_contents();

的参考

答案 1 :(得分:1)

输出缓冲:

ob_start();
// your code
$data = ob_end_clean();

答案 2 :(得分:0)

我相信几天前我回答了一个非常相似的问题。为什么不将所有内容分配给变量然后echo呢?

$output = '<table border=\'0\' cellpadding=\'0\' cellspacing=\'0\'>';

for ($y=$startY;$y<$startY+$fieldHeight;$y++) {
    $output .= '<tr>';
    for ($x=$startX;$x<$startX+$fieldWidth;$x++) {
        //echo '(' . $x . ',' . $y . ')';
        $output .= '<td><img src=\'tiles/' . (isset($map[$x][$y]['terrain']) ? $map[$x][$y]['terrain'] : 'water') . '.png\' alt=\'\' /></td>';
    }
    $output .= '</tr>';
}

$output .= '</table>';

echo $output;

答案 3 :(得分:0)

不使用echo,而是使用字符串连接或输出缓冲系统:

e.g。

$var = '<table ....';
for (...) {
   $var .= '<td> ....';
}
$var .= '</table>';
     ^^--- string concatenation shorthand, equivalent to $var = $var . '<table...';

ob_start();
...your code here...
$var = ob_end_clean();