[英]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.