我想知道。。。
例如,我有一个用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';