首頁 >後端開發 >php教程 >PHP會話追蹤末與檔案處理系統一(43)

PHP會話追蹤末與檔案處理系統一(43)

WBOY
WBOY原創
2016-08-08 09:23:121001瀏覽

註銷變數

1、unset ($_SESSION[‘xxx’])刪除單一session變量,unset($_SESSION[‘xxx’]) 用來unregister一個已註冊的session變數。其作用和session_unregister()相同。     session_unregister()在PHP5中不再使用。
  註:unset($_SESSION) 此函數千萬不可使用,它會將全域變數$_SESSION銷毀,而且還沒有可行的辦法將其還原。使用者也不再可以註冊$_SESSION變數。
2、$_SESSION=array() 刪除多個session變數
3、session_unset() 刪除所有session變數

銷毀會話

session_destroy()結束目前的會話,並清空會話中的所有資源。函數不會unset(釋放)和目前session相關的全域變數,也不會刪除客戶端的session cookie。
傳回值:布林值。
功能說明:這個函數結束目前的session,此函數
沒有參數,且回傳值皆為true,

註:PHP預設的session是基於cookie的,如果要刪除cookie的話,必須藉助setcookie()函數。

刪除session的案例

<?<span>php
</span><span>//</span><span> 初始化session.</span><span>session_start();
</span><span>/*</span><span> 删除所有的session变量..也可用
unset($_SESSION[‘xxx’])逐个删除。</span><span>*/</span><span>$_SESSION </span>= array();<span>//</span><span>或session_unset();</span><span>/*</span><span>删除sessinid.由于session默认是基于cookie的,所
以使用setcookie删除包含session id的cookie.</span><span>*/</span><span>if</span><span> (isset($_COOKIE[session_name()])) {
setcookie(session_name(), </span><span>'</span><span>'</span>, time()-<span>42000</span><span>,
</span><span>'</span><span>/</span><span>'</span><span>);
}
</span><span>//</span><span> 最后彻底销毁session.</span><span>session_destroy();
</span>?>

持久化session

請求結束後所有註冊的變數都會自動被序列化(為了方便保存到伺服器端的會話文字檔案中) ,讀取時再進行還原。
??手動編碼與解碼:
??session_encode():序號-編碼
??session_decode():還原-解碼
??警告: 有些類型的資料不能被序列化因此也不能保存在會話中。包括resource變數或有循環引用的物件(即某個物件將一個指向自己的引用傳遞給另一個物件)。

設定會話控制

php.ini設定檔中有一組會話設定選項,可以對其進行設定。如下:
??session.auto_start= 0 ;在請求啟動時初始化session
??session.cache_expire= 180 ; 設定快取中的會話文件在n 分鐘後過時
??session.cookie_lifetime= 0 ;設定按秒記的cookie的保存時間,相當於設定Session的過期時間,為0時表示直到瀏覽器被重啟

也可以在php.ini裡啟動session.auto_start=1,這樣就無需每次使用session之前都要調用session_start()。
但啟用該選項也有一些限制,如果確實啟用了session.auto_start,則不能將物件放入會話中,因為類別定義必須在啟動會話之前載入以在會話中重建物件。

??session.cookie_path= / ; cookie的有效路徑
??session.cookie_domain= ; cookie的有效域
??session.name= PHPSESSID;用在cookie裡的session的名字
??session.save_handler= files ; 用於儲存/取回資料的控制方式
??session.save_path= /tmp; 在save_handler設為檔案時傳給控制器的參數,這是資料檔案將儲存的路徑.
??session.use_cookies = 1 ; 是否使用cookies

檔案處理系統

檔案類型

??在程式運作時,程式本身和資料一般都存在記憶體中,當程式運作結束後,存放在記憶體中的資料會釋放。
??如果需要長期保存程式運行所需的原始數據,或程式運行產生的結果,就必須以檔案形式儲存到外部儲存媒體上。
??檔案一般指儲存外部媒體上具有名字(檔案名稱)的一組相關資料集合。用文件可長期保存數據,並實現數據共享。
??PHP是以UNIX的檔案系統為模型的。因此在Windows系統中我們只能取得”file”、”dir”或“unknown”三種文件類型。而在UNIX系統中,我們可以得到block、char、dir、fifo、file、link和unknown七種類型。
??可以使用函數filetype()來取得檔案的具體類型。
??語法:string filetype( string filename )

Liunx系統中7種檔案類型說明

is_dir( ) --判斷給定檔案名稱是否為目錄
語法結構:boolis_dir(名稱)
回傳類型:如果檔案名稱存在且是目錄則傳回true,否則傳回false。
??is_executable( ) --判斷給定檔案名稱是否可執行
語法結構:boolis_executable(名稱)
回傳類型:如果檔案存在且可執行則傳回true ,否則傳回false 。
??is_file( ) --判斷給定檔案名稱是否為一個正常的檔案
語法結構:boolis_file(名稱)
回傳類型:如果檔案存在且為正常的檔案則傳回true 。
??is_link( ) --判斷給定檔案名稱是否為一個符號連接
語法結構:boolis_link(名稱)
回傳類型:如果檔案存在且是符號連接則傳回true。
??is_readable( ) --判斷給定檔案名稱是否可讀
語法結構:boolis_readable(檔案名稱)
回傳類型:如果檔案存在且可讀則傳回true。
??is_writable( ) --判斷給定的檔案名稱是否可寫
語法結構:boolis_writable(檔案名稱)
回傳類型:如果檔案存在且可寫則傳回true 。

檔案的屬性

以上就介紹了PHP會話追蹤末與檔案處理系統一(43),包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn