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

대신 에코 - ING의, 왜 당신은 단지에 그 문자열을 저장하지 않습니다 변수? – 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

문자열는 연결은, 상기 출력 버퍼링 체계를 사용할

$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(); 
관련 문제