0
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

4 に答える 4

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

ob_get_contents()のリファレンス;

于 2012-06-10T18:31:09.847 に答える
1

出力バッファリング:

ob_start();
// your code
$data = ob_end_clean();
于 2012-06-10T18:31:23.040 に答える
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;
于 2012-06-10T18:30:57.210 に答える
0

echo を使用する代わりに、文字列連結または出力バッファリング システムを使用します。

例えば

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

また

ob_start();
...your code here...
$var = ob_end_clean();
于 2012-06-10T18:31:08.787 に答える