2012-06-10 5 views
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. Я просто ищу простой способ сохранить результат из приведенного выше в переменной. Как я могу это сделать?Сохраните «выход» на «выход»

+1

Вместо эхо-ков, почему вы не просто хранить эти строки в Переменная? – lkaradashkov

+1

Буферизация вывода кажется лучшим способом: код остается неизменным, и его легко вернуть в исходную функциональность. – wroniasty

ответ

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

Ссылка для ob_get_contents();

+0

Переменная $ content содержит логическое значение. Как отредактировать фактический контент? – John

+0

жаль, что это ob_get_contents(); – dynamic

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; 
0

Вместо того чтобы использовать эхо, использовать либо строку concatentation, или систему буферизации вывода:

например

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

или

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

Что является самым сумасшедшим в использовании? – John

+1

Я бы рекомендовал использовать массив и implode() вместо конкатенации строк снова и снова. – Tomalak

+0

@john: зависит от ваших потребностей, как часто этот код выполняется и т. Д. –

1

буферизацию вывода:

ob_start(); 
// your code 
$data = ob_end_clean(); 
Смежные вопросы