客戶端數(shù)據(jù)存儲機(jī)制cookie
公司主營業(yè)務(wù):做網(wǎng)站、成都做網(wǎng)站、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出大名免費(fèi)做網(wǎng)站回饋大家。
在實(shí)際的Web應(yīng)用中經(jīng)常需要在客戶端存儲一些客戶信息 一方面是為了改善用戶體驗(yàn)(如存儲訪問密碼 歷史表單信息) 另一方面有效地減輕了服務(wù)器數(shù)據(jù)讀取壓力 訪問者在第一次訪問頁面時設(shè)置cookie變量是存儲在客戶端計(jì)算機(jī)中 當(dāng)下次瀏覽器請求某個頁面時 就可以讀取cookie中存儲的值 從而實(shí)現(xiàn)客戶端數(shù)據(jù)存取
下面將通過一個例子展示一個客戶端數(shù)據(jù)存儲的實(shí)際應(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()???????????????????????? //實(shí)例化日期變量
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
$conn?=?mysql_connect("主機(jī)名","用戶名","密碼");
mysql_select_db("數(shù)據(jù)庫名",$conn);
$sql?=?"select?*?from?user";
$result?=?mysql_query($sql);
$data="";
while($row?=?mysql_fetch_row($result)){
foreach($row?as?$v){
$data?.=$v."|";??????//加個樹線隔開字段
}
nl2br($data);????//讀完一行回車
}
file_put_contents("abc.txt",$data);
//第二種
?php
$filename?=?"abc.txt";
$res?=?fopen($filename,"r");
while(!feof($res)){
$buffer?=?fgets($res);
$buffer?=?str_replace('?',?'|',?$buffer);?
$array?=?explode('|',?$buffer);?
foreach($array?as?$v){
if(strlen($v)0){
$arr[]?=?$v;
}
}
}
fclose($res);
//組裝數(shù)組插入數(shù)據(jù)庫就可以了
可以的。
先用serialize序列化數(shù)組,再存入COOKIE,讀出來時用unserialize得到原來的數(shù)組
代碼:
//存入
$arr = array(1,2,3);
$arr_str = serialize($arr);
setcookie("a",$arr_str);
//取出
$arr_str = $_COOKIE['a'];
$arr = unserialize($arr_str);
2. 設(shè)定多鍵值cookie,注意必須給鍵值
$arr = array(1,2,3);
setcookie("a[0]", $arr[0]);
setcookie("a[1]", $arr[1]);
setcookie("a[2]", $arr[2]); 結(jié)果:數(shù)組所有元素都存到了。
數(shù)組長度 :3
Array ( [0] = 1 [1] = 2 [2] = 3 )
PHP有自帶的高性能函數(shù) var_export
conn.php
?php
$dbconfig = array (
'host'='127.0.0.1',
'name'='root',
'password'='123456',
?
b.php
?php
// 讀取配置
include 'conn.php';
echo $dbconfig['host'];
// 修改配置
$dbconfig['host'] = 'xxx.xxx.xxx.xxx';
file_put_contents('conn.php', "?php\n$dbconfig = " . var_export($dbconfig) . "\n?");
// 再讀取配置
include 'conn.php';
echo $dbconfig['host'];
?
參考連接:
名稱欄目:php數(shù)據(jù)存儲代碼 PHP數(shù)據(jù)
標(biāo)題來源:http://aaarwkj.com/article14/hhjpge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、網(wǎng)站內(nèi)鏈、靜態(tài)網(wǎng)站、用戶體驗(yàn)、網(wǎng)站設(shè)計(jì)公司、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)