簡體   English   中英

使用會話-PHP

[英]Working with Sessions - PHP

使用會話時,是否需要聲明session_start()或ob_start()? 這樣做或不這樣做的好處是什么?

謝謝!

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>

從PHP手冊

session_start() -初始化會話數據

摘要:

session_start()創建一個會話或根據通過請求(例如GET,POST或cookie)傳遞的當前會話ID恢復當前會話。

如果要使用命名會話,則必須在調用session_start()之前先調用session_name()。

啟用trans-sid時,session_start()將注冊內部輸出處理程序以進行URL重寫。 如果用戶將ob_gzhandler或與ob_start()一起使用 ,則輸出處理程序的順序對於正確輸出很重要。 例如,用戶必須在會話開始之前注冊ob_gzhandler。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM