PHP,可以将动态生成的html保存在会话变量中


PHP, is possible to save html generated dynamically in a session variable?

我想知道。。。

例如,我有一个用php:动态生成的html

<div>
 <ul>
  <li>Some content</li>
 </ul>
</div>

此内容将始终根据用户输入进行更改。所以我的问题。。是否可以将渲染页面后生成的html保存在$_SESSION变量中,然后在另一个页面中返回?

我唯一的想法是:

//after query the sql
$_SESSION['html'][] = 'html content';
echo 'html content';

因此,在呈现所有页面后,我将把所有html存储在$_SESSION['html']变量中。。。但看起来不太好:S

<?php ob_start(); ?>
<div>
 <ul>
  <li>Some content</li>
<?php echo "<li>Some more content</li>"; ?>
 </ul>
</div>
<?php
$_SESSION['html'][] = ob_get_contents();
ob_end_flush();   // or ob_end_clean();

"ob"函数用于输出缓冲。它们将在缓冲区中捕获echo语句或<?php ?>标记外部的所有输出。在用ob_get_contents保存缓冲区中的内容后,您可以用ob_end_flush发送缓冲区内的内容或用ob_end_clean丢弃它。

这样做没有错。只需更改此

$_SESSION['html'][] = 'html content';

$_SESSION['html'] = 'html content';

当你想附加更多内容时,可以这样做:

$_SESSION['html'] .= 'html content';