在PHP中使用serialize()序列化數(shù)據(jù)是非常便捷的。serialize()返回一個字符串,此字符串包含了表示數(shù)據(jù)的字節(jié)流。使用serialize()產(chǎn)生的這個字符串可以存儲于任何地方,同時不會丟失其數(shù)據(jù)類型和結(jié)構(gòu),這有利于存儲或傳遞PHP的值。
成都創(chuàng)新互聯(lián)公司專注于歙縣企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站制作。歙縣網(wǎng)站建設(shè)公司,為歙縣等地區(qū)提供建站服務(wù)。全流程按需規(guī)劃網(wǎng)站,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
serialize()可以處理除resource之外的任何類型,甚至可以處理那些包含了指向其自身引用的數(shù)組。數(shù)組/對象中的引用也將被存儲,并且自PHP4版本以后可以同時存儲對象的屬性和方法(PHP3只能存儲對象的屬性)。
但是在使用serialize()的時候一定要注意對其內(nèi)容先進(jìn)行addslashes()處理,否則序列化的數(shù)據(jù)中如果有特殊字符就會導(dǎo)致字符串無法使用unserialize()進(jìn)行反序列化。
客戶端數(shù)據(jù)存儲機(jī)制cookie
在實際的Web應(yīng)用中經(jīng)常需要在客戶端存儲一些客戶信息 一方面是為了改善用戶體驗(如存儲訪問密碼 歷史表單信息) 另一方面有效地減輕了服務(wù)器數(shù)據(jù)讀取壓力 訪問者在第一次訪問頁面時設(shè)置cookie變量是存儲在客戶端計算機(jī)中 當(dāng)下次瀏覽器請求某個頁面時 就可以讀取cookie中存儲的值 從而實現(xiàn)客戶端數(shù)據(jù)存取
下面將通過一個例子展示一個客戶端數(shù)據(jù)存儲的實際應(yīng)用 執(zhí)行流程如下
( )創(chuàng)建一個存儲訪問者名字的cookie;
( )當(dāng)訪問者首次訪問網(wǎng)站時 訪問者會被要求填寫姓名信息 該姓名信息會存儲于cookie中
( )當(dāng)訪問者再次訪問網(wǎng)站時瀏覽器會顯示歡迎詞信息
在JavaScript創(chuàng)建cookie
創(chuàng)建一個可在cookie變量中存儲訪問者姓名的函數(shù) 代碼如下
function setCookie(c_name value expiredays)
{
var exdate=new Date()???????????????????????? //實例化日期變量
exdate setDate(exdate getDate()+expiredays)?? //設(shè)置日期變量
document cookie=c_name+ = +escape(value)+
((expiredays==null) ? : ;expires= +exdate toGMTString())
}
【代碼解讀】
setCookie()函數(shù)的功能是設(shè)置cookie的名稱 值及失效時間 首先將獲取當(dāng)前的日期轉(zhuǎn)換為有效的日期 然后設(shè)置cookie名稱 值及失效時間 并將該值存入document cookie對象
從JavaScript取回cookie的值
從JavaScript取回cookie的值 創(chuàng)建讀取客戶端cookie值的函數(shù) 同時判斷當(dāng)前cookie的狀態(tài) 代碼如下
function getCookie(c_name)
{
if (document cookie length )?????????????????? //判斷當(dāng)前cookie是否為空
{
c_start=document cookie indexOf(c_name + = )
if (c_start!= )
{
c_startc_start=c_start + c_name length+
c_end=document cookie indexOf( ; c_start)
if (c_end== ) c_end=document cookie length
return unescape(document cookie substring(c_start c_end))
//返回客戶端cookie的值
}
}
return
}
【代碼解讀】
getCookie()函數(shù)首先會判斷document cookie對象中是否存有cookie 如果document cookie對象存有某些cookie值 那么會繼續(xù)檢查指定的cookie是否已儲存 如果滿足判斷條件就返回cookie存儲值 否則返回空字符串
JavaScript流程控制
當(dāng)完成了cookie的創(chuàng)建和讀取之后 需要創(chuàng)建一個流程控制函數(shù) 這個函數(shù)的作用是 如果cookie已設(shè)置 則顯示歡迎詞 否則顯示提示框要求用戶輸入名字
function checkCookie() {
username=getCookie( username )????????????????? //獲得cookie中的用戶名變量
if (username != null username != ) {
alert( Wele again +username+ ! )??? //彈出歡迎信息
} else {
username=prompt( Please enter your name: )
if (username != null username != ) {
setCookie( username username )? //設(shè)置cookie
}
}
}
客戶端數(shù)據(jù)存儲示例的完整代碼如下
lishixinzhi/Article/program/PHP/201311/21526
可以的,php數(shù)組不需要聲明類型,它會根據(jù)你所存儲的第一個數(shù)據(jù)判斷數(shù)據(jù)類型.