我想知道PHP如何檢測特定會話超時。PHP如何檢測會話超時?
詳細信息:我使用默認(基於文件)會話處理程序,默認會話生存期等。在php.ini中的所有內容都是默認的。
如果現在啓動了一個會話,如果有任何超時會話,PHP會執行檢查(取決於非session.gc_divisor和session.gc_probability)。但是從哪裏得到PHP會話的最後一次訪問時間來檢查?
會話文件本身僅包含工作負載,例如, x|i:1;
爲$_SESSION['x'] = 1;
,所以沒有關於上次會話訪問時間的信息。
我認爲沒有與會話開始時間相關的內存信息,因爲會話在重新啓動完整服務器後仍然有效。
那麼,PHP從哪裏獲取信息呢?它比較會話文件的mtime/ctime嗎?
嘿,謝謝你的回覆。你寫道「PHP可以使用該文件的mtime」。我很確定這是PHP與基於默認文件的會話處理程序一起工作的方式,但是有沒有關於此的官方聲明? – hacksteak25
不,但是你可以隨時查看php源代碼,如果你確定的話。由於'上次使用時間'不會被編碼到會話數據本身中,因此會話文件的mtime是唯一可用的其他位置。 PHP不會在其他地方維護一個數據庫 - 如果有的話,會有配置選項來指定數據的保存位置/方式。 –
希望能找到比尋找資源更簡單的方法;)但是你是對的。有沒有選擇的時間,所以似乎只有文件的時間。謝謝你。 – hacksteak25