在之前的文章中為大家帶來了《五分鐘帶你了解PHP中的魔術方法(實例詳解)》,其中詳細給大家介紹了PHP中常用的魔術方法,本篇我們來看看PHP中cookie的相關知識,希望對大家有幫助!
在我們的日常生活中,登入一個網站上面會有你上次登入中斷時留下的訊息,購物車上也會看到你在不同頁面看到的商品,這些都是網站用來辨識使用者的一種手段,為了能夠方便的給使用者進行推播內容。想要實現這樣複雜的功能就需要通過cookie,那麼我們就來了解一下什麼是Cookie。它有哪些用途以及怎麼去建立、讀取和刪除。
什麼是Cookie
#透過cookie就可以實現很多功能,那麼什麼是cookie? cookie是在HTTP協定下,將伺服器傳遞給瀏覽器的少量資料保存在使用者瀏覽器的一種方式。例如它可以保存一些用戶的信息,這樣的話即使瀏覽器關閉或連接中斷的情況,用戶仍然可以維護這些數據。
也可以理解為,cookie就是將瀏覽器網頁的特定資訊以文件的形式保存在客戶端硬碟中,當你再次造訪這個網站的時候,瀏覽器就會先讀取這個cookie文件,讀取到的資料就提供給瀏覽器。這樣的話就實現了類似用戶的網頁有一些個性化的設置,再次打開會保存下來這樣的效果。這就是透過cookie將它們展示出來。
<strong><span style="font-size: 20px;">Cookie</span></strong>
#的主要用途
cookie的用途有很多,cookie中的資訊有很多種,伺服器就可以利用cookie包含資訊的這用任意性來進行篩選資訊並且維護訊息,這樣做的目的是為了判斷HTTP傳輸中的狀態。 cookie最典型的應用程式我們日常中也是很常見的,就是去判斷一個註冊的用戶是否已經登陸了網站,還有就是商城中類似購物車中的功能。
下面跟大家總結一下cookie常用於以下三個面向:
#記錄使用者的一些資訊;類似上文說到的使用者個人化設定.
在頁面之間傳遞資料;也就是一個頁面的資料要在另一個頁面使用時。
將檢視的Web網頁儲存在cookie暫存檔案中,可以加快網頁的存取速度。
其中我們需要注意到的是,一般不建議使用cookie來保存資料集或較大的數據,同時並不是所有的瀏覽器都會支援cookie,而且資料資訊都是以文字的形式保存的,為了不影響網站的安全性,最好不要有敏感的未加密資料保存。
建立cookie
在PHP中建立cookie的話需要setcookie()
函數,建立cookie中我們需要注意的是,cookie是HTTP響應頭部的組成部分,響應頭部它必須先輸出。若是setcookie()函數前輸出一個HTML或空白行、echo什麼的都可能會導致程式出錯。
setcookie()
函數的語法格式如下:
setcookie(string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]])
其中我們需要注意的是:
$name
---表示設定Cookie 的名稱;
#$value
---是可選參數,可以用來設定Cookie的值;
$expire
---是可選參數,用來設定Cookie 的過期時間,這個時間是Unix 時間戳記的形式。 Cookie有些是暫時的有些是持續的,暫時的在瀏覽器上會存在一定的時間,一旦超過規定的時間該cookie就會被系統清除。
$path
---可選參數,用來設定 Cookie 有效的伺服器路徑。
$domain
---可選參數,用來設定 Cookie 的有效網域/子網域。
$secure
---可選參數,用來設定這個 Cookie 是否僅僅透過安全的 HTTPS 連線傳給客戶端。
接下來透過範例看一下建立cookie:
<?php setcookie('Website', '好好学习'); setcookie('Title', 'Cookie', time()+3600); // 设置 Cookie 1 小时后过期 echo '<pre class="brush:php;toolbar:false">'; print_r($_COOKIE); ?>
輸出結果:
讀取cookie#
在PHP中,想要读取cookie就需要使用超级全局变量$_COOKIE
,$_COOKIE
是一个储存着所有信息的数组,它的语法格式如下:
$_COOKIE['Cookie 名称']
实例如下:
<?php setcookie('Website', '好好学习'); setcookie('Title', 'Cookie', time()+3600); // 设置 Cookie 1 小时后过期 echo '<pre class="brush:php;toolbar:false">'; print_r($_COOKIE); echo 'Website 的值为:'.$_COOKIE['Website'].'<br>'; echo 'Title 的值为:'.$_COOKIE['Title']; ?>
输出结果:
由此我们边通过$_COOKIE 读取到了cookie的值。
删除cookie
我们在上文中说,可以给临时的cookie设置一个时间,当时间过了之后,系统会自动删除这个cookie,那能不能够当 Cookie 被创建后,没有设置它的失效时间,其 Cookie 文件会在关闭浏览器时被自动删除。如果要在关闭浏览器之前删除 Cookie 文件,同样需要使用 setcookie()
函数。
删除 Cookie 和创建 Cookie 的方式基本类似,只需要使用 setcookie() 函数将 Cookie 的值(也就是第二个参数)设置为空,或者将 Cookie 的过期时间(也就是第三个参数)设置为小于系统的当前时间即可。
实例如下:
<?php setcookie('Website',''); setcookie('Title','Cookie',time()-1); echo '<pre class="brush:php;toolbar:false">'; print_r($_COOKIE); ?>
输出结果:
如此我们便完成了删除cookie的值。
大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。
以上是PHP中怎樣完成Cookie的建立、讀取和刪除?的詳細內容。更多資訊請關注PHP中文網其他相關文章!