使用会话 - PHP

时间:2009-09-11 14:00:43

标签: php session

使用Sessions时,是否需要声明session_start()或ob_start()?这样做有什么好处呢?

谢谢!

2 个答案:

答案 0 :(得分:6)

必须使用

session_start()来存储和读取$ _SESSION全局。

ob_start()与会话完全分开。 ob_start()触发输出缓冲,它将所有输出存储在缓冲区中供以后使用。当PHP脚本结束时,缓冲区会自动刷新给用户。或者,您可以在执行中获取缓冲区的内容并调整内容。见下面的例子。

来自php.net的例子:

<?php
function callback($buffer)
{
  // replace all the apples with oranges
  return (str_replace("apples", "oranges", $buffer));
}

ob_start("callback");

?>
<html>
<body>
<p>It's like comparing apples to oranges.</p>
</body>
</html>
<?php

ob_end_flush();

?>

输出:

<html>
<body>
<p>It's like comparing oranges to oranges.</p>
</body>
</html>

答案 1 :(得分:1)

来自PHP手册

session_start() - 初始化会话数据

  

摘要:

     

session_start()创建会话或   恢复当前的基于   正在传递的当前会话ID   通过请求,例如GET,POST或a   曲奇饼。

     

如果要使用命名会话,   你必须先调用session_name()   调用session_start()。

     

session_start()将注册内部   用于URL重写的输出处理程序   trans-sid已启用。如果用户使用   ob_gzhandler或喜欢   ob_start(),输出顺序   处理程序非常重要   输出。例如,用户必须   在会话之前注册ob_gzhandler   启动。