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调用进行更新。我只是在寻找一种简单的方法来将上面的输出存储在一个变量中。我怎么能这样做?
答案 0 :(得分:3)
ob_start();
// echo what you want
$content = ob_get_contents();
ob_end_clean();
的参考
答案 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();