深入理解PHP中的Session和Cookie
更新時(shí)間:2013年06月21日 09:55:29 作者:
本篇文章是對(duì)PHP中的Session和Cookie進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
在一個(gè)頁(yè)面設(shè)置一個(gè)cookie時(shí),必須刷新或到下一個(gè)頁(yè)面才可以用 $_COOKIE 得到變量的值.
原因是因?yàn)楫?dāng)頁(yè)面第一次被瀏覽器訪問(wèn)載入時(shí),頁(yè)面中的 cookie 會(huì)被設(shè)置,將其發(fā)送存儲(chǔ)到客戶(hù)端指定的存儲(chǔ)位置,所以$_COOKIE沒(méi)有接收到客戶(hù)端發(fā)送過(guò)來(lái)的 cookie 變量的值,當(dāng)刷新或到下一個(gè)頁(yè)面時(shí),客戶(hù)端會(huì)在頁(yè)面程序在服務(wù)器端運(yùn)行之前,發(fā)送與該地址相對(duì)應(yīng)的 cookie到服務(wù)器端,所以 $_COOKIE 可以得到的值! 說(shuō)白了就是當(dāng)每一個(gè)頁(yè)面被訪問(wèn)時(shí),如果客戶(hù)端找到了與訪問(wèn)地址相對(duì)應(yīng)的 cookie 時(shí),會(huì)在程序在服務(wù)器端運(yùn)行之前發(fā)送這個(gè) cookie 到服務(wù)器端. (個(gè)人對(duì)此的看法)
本人表達(dá)能力不強(qiáng),如有不明,還請(qǐng)抱歉!
php中設(shè)置cookie數(shù)組的時(shí)候,不可以用像php中的那個(gè)添加數(shù)據(jù)的方法:
<?php
setcookie('my_cookie[]', 1);
setcookie('my_cookie[]', 2);
print_r($_COOKIE); // Array ( [my_cookie] => Array ( [0] => 1 ))
// 數(shù)組的值添加是添加成功了,不過(guò)索引沒(méi)有變,后面的數(shù)據(jù)將前的數(shù)據(jù)覆蓋了!
由此得到
my_cookie[],默認(rèn)指向數(shù)據(jù)的第一元素的位置,即索引為
0 的位置. 注意與php中的不一樣! 以后用cookie數(shù)據(jù)記住要指定數(shù)組元素索引哦!
$my_cookie[] = 1;
$my_cookie[] = 2;
print_r($my_cookie); //Array ( [0] => 1 [1] => 2)
?>
刪除 cookie 變量的兩個(gè)方法:
1.php
<?php
setcookie('user_name_1', 'zhaofei299', time()+3600); // 生存期為 1 個(gè)小時(shí)
setcookie('user_name_2', 'ZHAOFEI299', time()+3600); // 生存期為 1 個(gè)小時(shí)
?>
2.php
<?php
setcookie('user_name_1'); // 第一種
setcookie('user_name_2', "", time()-1); // 第二種
print_r($_COOKIE); // 刷新頁(yè)面2下以上會(huì)輸出 Array ( [user_name_1] => )
/*為什么超級(jí)全局變量 $_COOKIE 中的 user_name_1 沒(méi)有被刪除(變量為空并不代表不存在),而
user_name_2被刪除了? 那是因?yàn)閮蓚€(gè)刪除變量的方式不同!
第一種: 是設(shè)置了 cookie 的生存期, 只不過(guò)是將它的值默認(rèn)設(shè)置為空,生存期為與瀏覽器一樣,瀏覽器
關(guān)閉時(shí),cookie才會(huì)刪除!所以當(dāng)重新打開(kāi)一個(gè)瀏覽器,輸出地址時(shí),才會(huì)發(fā)現(xiàn) cookie 變量全部被刪除了!
將2.php 中兩個(gè) setcookie() 函數(shù)部分注釋掉看看(重新輸出了地址)!
第二種: 也是設(shè)置了 cookie 的生存期,是使 cookie 的生存期一定過(guò)期, cookie 也就被刪除,所以刷
新頁(yè)面,客戶(hù)端向服務(wù)器端發(fā)送 cookie 時(shí), $_COOKIE 并沒(méi)有能夠得到該cookie變量的值!
*/
?>
會(huì)話(huà)id默認(rèn)儲(chǔ)放在客戶(hù)端Cookie中!
<?php
session_start();
print_r($_COOKIE);
?>
cookie的設(shè)置有兩種方法
header('set-cookie:user=zhaofei299');
setcookie('user', 'zhaofei299');
會(huì)話(huà)變量不能被GET數(shù)據(jù)或POST數(shù)據(jù)重載!
使用session變量傳遞數(shù)組,對(duì)象時(shí)無(wú)需序列化!
使用session變量傳遞對(duì)象時(shí),在調(diào)用session_start()之前,必須包含該對(duì)類(lèi)對(duì)象的定義,反序列化
(serialize)也是如此!
刪除單個(gè)會(huì)話(huà)變量可以使用unset($_SESSION['***']) 直接刪除!
刪除所有的會(huì)話(huà)變量不可以用unset($_SESSION),因?yàn)檫@樣會(huì)將所有的會(huì)話(huà)信息刪除,包含存儲(chǔ)在COOKIE
中的PHPSESSID,也就是破壞了兩個(gè)頁(yè)面之間的會(huì)話(huà)聯(lián)系,應(yīng)該使用$_SESSION = array();
消除會(huì)話(huà)id,使頁(yè)面之間失去聯(lián)系!
session_destroy();
程序清單1.1
<?php
session_start();
header('content-type:text/html;charset=utf-8');
$_SESSION['a'] = 'a';
$_SESSION['b'] = 'b';
unset($_SESSION); //測(cè)試后,再注釋下看看
$_SESSION['user'] = 'zhaofei299';
echo 'SESSION_ID: '.session_id().'<br />';
echo '<a href="3.php" target="_blank">測(cè)試下</a>';
?>
<?php
session_start();
echo $_SESSION['user'];
echo session_id(); //會(huì)話(huà)變量改變了
?>
會(huì)話(huà)id(session_id)的兩種方式傳遞:
1.cookie
2.url
因?yàn)槟J(rèn)session是基于cookie的,而cookie又是跟隨http協(xié)議發(fā)送的,所以與cookie一樣,在
session_start()之前不能有任何輸出!
現(xiàn)在主要說(shuō)一說(shuō)第二種,通過(guò) url 傳遞會(huì)話(huà)id
php中已經(jīng)定義SID這個(gè)常量來(lái)得到 會(huì)話(huà)的id
sesssin_id 的使用!
<?php
session_start();
echo defined('SID')?'true':'false'; // true
echo SID; //什么也沒(méi)有?
?>
為什么SID的值會(huì)是null 呢?是它哪里有問(wèn)題了?
原因是因?yàn)?session 默認(rèn)是基于 cookie 的,而 SID 只有 session_id 通過(guò) url
傳遞數(shù)據(jù)時(shí)才會(huì)被賦值!
在瀏覽器中將 cookie 禁用,你就會(huì)發(fā)現(xiàn) SID 有了輸出,而不是 null!
刪除session
要三步實(shí)現(xiàn).
<?php
session_destroy(); // 第一步: 刪除服務(wù)器端session文件,這使用
setcookie(session_name(),'',time()-3600); // 第二步: 刪除實(shí)際的session:
$_SESSION = array(); // 第三步: 刪除$_SESSION全局變量數(shù)組
?>
大家都知道session變量是保存在服務(wù)器端的,也就是說(shuō)session的變量會(huì)保存在服務(wù)器中一個(gè)目錄中,我
們可以在php.ini中的session.save_path 那里可以找到session文件中保存的地址.
默認(rèn)的session的生存期是瀏覽的關(guān)閉就結(jié)束,但要知道會(huì)話(huà)過(guò)期結(jié)束后,當(dāng)打開(kāi)頁(yè)面session_start()會(huì)
判斷會(huì)話(huà)id 是否存在,如果不存在就創(chuàng)建一個(gè),否則將該會(huì)話(huà)id 的變量載入頁(yè)面!因?yàn)檫^(guò)期session_id會(huì)
被創(chuàng)建一個(gè)新的,但它保存在服務(wù)器端的session文件并沒(méi)有被刪除(關(guān)閉瀏覽器,打開(kāi)session文件保存
地看看),所以要用session_destory()函數(shù)清除會(huì)話(huà)id,并同時(shí)清除相應(yīng)的會(huì)話(huà)文件,這樣的話(huà)才能做到最
徹底的清除!
session_id 使用 url 傳遞session 變量數(shù)據(jù)時(shí),因?yàn)閟ession_start()開(kāi)啟會(huì)話(huà)時(shí)會(huì)判斷會(huì)話(huà)id 是否存
在,如果不存在就創(chuàng)建一個(gè),否則將該會(huì)話(huà)id 的變量載入頁(yè)面!
而現(xiàn)在是使用url 來(lái)傳遞session_id,然而每一次 刷新/進(jìn)入頁(yè)面 都會(huì)生成一個(gè)會(huì)話(huà)id,所以頁(yè)面之間就
不能得到在另一頁(yè)面設(shè)置過(guò)的session_id 的變量,那么使用 session也就沒(méi)什么意義了!
解決方法:在session_start()之前,手動(dòng)設(shè)置頁(yè)面的session_id,這樣頁(yè)面的就可以得到前一頁(yè)中所設(shè)置的
session變量的,也就實(shí)現(xiàn)了會(huì)話(huà)的傳遞,如下代碼可以說(shuō)明!
//已禁用 cookie
1.php
<?php
session_start();
$_SESSION['user'] = 'zhaofei299';
echo '<a href="2.php?'.SID.'">下一頁(yè)</a>';
?>
1.php的第4行代碼也可以寫(xiě)成:echo '<a href="2.php">下一頁(yè)</a>';
可以設(shè)置php.ini 中的 session.use_trans_sid 為1,這樣當(dāng)使用 url 傳遞會(huì)話(huà) id 時(shí),
瀏覽器會(huì)自動(dòng)將 session_id 追加到 url 的后面!
就好像 在瀏覽器中 輸入: www.baidu.com 一樣,瀏覽器會(huì)自動(dòng)將其更換成 http://www.baidu.com/
2.php
<?php
session_id($_GET['PHPSESSID']); // 手動(dòng)設(shè)置session_id,這種就可以使用前一個(gè)頁(yè)面的
session_id 的變量了,也就實(shí)現(xiàn)了會(huì)話(huà)!
session_start();
print_r($_SESSION);
?>
常用session函數(shù):
bool session_start(void); 初始化session
bool session_destroy(void): 刪除服務(wù)器端session關(guān)聯(lián)文件。
string session_id() 當(dāng)前session的id
string session_name() 當(dāng)前存取的session名稱(chēng),也就是客戶(hù)端保存session ID的cookie名稱(chēng).默認(rèn)
PHPSESSID。
array session_get_cookie_params() 與這個(gè)session相關(guān)聯(lián)的session的細(xì)節(jié).
string session_cache_limiter() 控制使用session的頁(yè)面的客戶(hù)端緩存
ini session_cache_expire() 控制客戶(hù)端緩存時(shí)間
bool session_destroy() 刪除服務(wù)器端保存session信息的文件
void session_set_cookie_params ( int lifetime [, string path [, string domain [, bool
secure [, bool httponly]]]] )設(shè)置與這個(gè)session相關(guān)聯(lián)的session的細(xì)節(jié)
bool session_set_save_handler ( callback open, callback close, callback read, callback
write, callback destroy, callback gc )定義處理session的函數(shù),(不是使用默認(rèn)的方式)
bool session_regenerate_id([bool delete_old_session]) 分配新的session id
原因是因?yàn)楫?dāng)頁(yè)面第一次被瀏覽器訪問(wèn)載入時(shí),頁(yè)面中的 cookie 會(huì)被設(shè)置,將其發(fā)送存儲(chǔ)到客戶(hù)端指定的存儲(chǔ)位置,所以$_COOKIE沒(méi)有接收到客戶(hù)端發(fā)送過(guò)來(lái)的 cookie 變量的值,當(dāng)刷新或到下一個(gè)頁(yè)面時(shí),客戶(hù)端會(huì)在頁(yè)面程序在服務(wù)器端運(yùn)行之前,發(fā)送與該地址相對(duì)應(yīng)的 cookie到服務(wù)器端,所以 $_COOKIE 可以得到的值! 說(shuō)白了就是當(dāng)每一個(gè)頁(yè)面被訪問(wèn)時(shí),如果客戶(hù)端找到了與訪問(wèn)地址相對(duì)應(yīng)的 cookie 時(shí),會(huì)在程序在服務(wù)器端運(yùn)行之前發(fā)送這個(gè) cookie 到服務(wù)器端. (個(gè)人對(duì)此的看法)
本人表達(dá)能力不強(qiáng),如有不明,還請(qǐng)抱歉!
php中設(shè)置cookie數(shù)組的時(shí)候,不可以用像php中的那個(gè)添加數(shù)據(jù)的方法:
復(fù)制代碼 代碼如下:
<?php
setcookie('my_cookie[]', 1);
setcookie('my_cookie[]', 2);
print_r($_COOKIE); // Array ( [my_cookie] => Array ( [0] => 1 ))
// 數(shù)組的值添加是添加成功了,不過(guò)索引沒(méi)有變,后面的數(shù)據(jù)將前的數(shù)據(jù)覆蓋了!
由此得到
my_cookie[],默認(rèn)指向數(shù)據(jù)的第一元素的位置,即索引為
0 的位置. 注意與php中的不一樣! 以后用cookie數(shù)據(jù)記住要指定數(shù)組元素索引哦!
$my_cookie[] = 1;
$my_cookie[] = 2;
print_r($my_cookie); //Array ( [0] => 1 [1] => 2)
?>
刪除 cookie 變量的兩個(gè)方法:
1.php
復(fù)制代碼 代碼如下:
<?php
setcookie('user_name_1', 'zhaofei299', time()+3600); // 生存期為 1 個(gè)小時(shí)
setcookie('user_name_2', 'ZHAOFEI299', time()+3600); // 生存期為 1 個(gè)小時(shí)
?>
2.php
復(fù)制代碼 代碼如下:
<?php
setcookie('user_name_1'); // 第一種
setcookie('user_name_2', "", time()-1); // 第二種
print_r($_COOKIE); // 刷新頁(yè)面2下以上會(huì)輸出 Array ( [user_name_1] => )
/*為什么超級(jí)全局變量 $_COOKIE 中的 user_name_1 沒(méi)有被刪除(變量為空并不代表不存在),而
user_name_2被刪除了? 那是因?yàn)閮蓚€(gè)刪除變量的方式不同!
第一種: 是設(shè)置了 cookie 的生存期, 只不過(guò)是將它的值默認(rèn)設(shè)置為空,生存期為與瀏覽器一樣,瀏覽器
關(guān)閉時(shí),cookie才會(huì)刪除!所以當(dāng)重新打開(kāi)一個(gè)瀏覽器,輸出地址時(shí),才會(huì)發(fā)現(xiàn) cookie 變量全部被刪除了!
將2.php 中兩個(gè) setcookie() 函數(shù)部分注釋掉看看(重新輸出了地址)!
第二種: 也是設(shè)置了 cookie 的生存期,是使 cookie 的生存期一定過(guò)期, cookie 也就被刪除,所以刷
新頁(yè)面,客戶(hù)端向服務(wù)器端發(fā)送 cookie 時(shí), $_COOKIE 并沒(méi)有能夠得到該cookie變量的值!
*/
?>
會(huì)話(huà)id默認(rèn)儲(chǔ)放在客戶(hù)端Cookie中!
復(fù)制代碼 代碼如下:
<?php
session_start();
print_r($_COOKIE);
?>
cookie的設(shè)置有兩種方法
header('set-cookie:user=zhaofei299');
setcookie('user', 'zhaofei299');
會(huì)話(huà)變量不能被GET數(shù)據(jù)或POST數(shù)據(jù)重載!
使用session變量傳遞數(shù)組,對(duì)象時(shí)無(wú)需序列化!
使用session變量傳遞對(duì)象時(shí),在調(diào)用session_start()之前,必須包含該對(duì)類(lèi)對(duì)象的定義,反序列化
(serialize)也是如此!
刪除單個(gè)會(huì)話(huà)變量可以使用unset($_SESSION['***']) 直接刪除!
刪除所有的會(huì)話(huà)變量不可以用unset($_SESSION),因?yàn)檫@樣會(huì)將所有的會(huì)話(huà)信息刪除,包含存儲(chǔ)在COOKIE
中的PHPSESSID,也就是破壞了兩個(gè)頁(yè)面之間的會(huì)話(huà)聯(lián)系,應(yīng)該使用$_SESSION = array();
消除會(huì)話(huà)id,使頁(yè)面之間失去聯(lián)系!
session_destroy();
程序清單1.1
復(fù)制代碼 代碼如下:
<?php
session_start();
header('content-type:text/html;charset=utf-8');
$_SESSION['a'] = 'a';
$_SESSION['b'] = 'b';
unset($_SESSION); //測(cè)試后,再注釋下看看
$_SESSION['user'] = 'zhaofei299';
echo 'SESSION_ID: '.session_id().'<br />';
echo '<a href="3.php" target="_blank">測(cè)試下</a>';
?>
復(fù)制代碼 代碼如下:
<?php
session_start();
echo $_SESSION['user'];
echo session_id(); //會(huì)話(huà)變量改變了
?>
會(huì)話(huà)id(session_id)的兩種方式傳遞:
1.cookie
2.url
因?yàn)槟J(rèn)session是基于cookie的,而cookie又是跟隨http協(xié)議發(fā)送的,所以與cookie一樣,在
session_start()之前不能有任何輸出!
現(xiàn)在主要說(shuō)一說(shuō)第二種,通過(guò) url 傳遞會(huì)話(huà)id
php中已經(jīng)定義SID這個(gè)常量來(lái)得到 會(huì)話(huà)的id
sesssin_id 的使用!
復(fù)制代碼 代碼如下:
<?php
session_start();
echo defined('SID')?'true':'false'; // true
echo SID; //什么也沒(méi)有?
?>
為什么SID的值會(huì)是null 呢?是它哪里有問(wèn)題了?
原因是因?yàn)?session 默認(rèn)是基于 cookie 的,而 SID 只有 session_id 通過(guò) url
傳遞數(shù)據(jù)時(shí)才會(huì)被賦值!
在瀏覽器中將 cookie 禁用,你就會(huì)發(fā)現(xiàn) SID 有了輸出,而不是 null!
刪除session
要三步實(shí)現(xiàn).
復(fù)制代碼 代碼如下:
<?php
session_destroy(); // 第一步: 刪除服務(wù)器端session文件,這使用
setcookie(session_name(),'',time()-3600); // 第二步: 刪除實(shí)際的session:
$_SESSION = array(); // 第三步: 刪除$_SESSION全局變量數(shù)組
?>
大家都知道session變量是保存在服務(wù)器端的,也就是說(shuō)session的變量會(huì)保存在服務(wù)器中一個(gè)目錄中,我
們可以在php.ini中的session.save_path 那里可以找到session文件中保存的地址.
默認(rèn)的session的生存期是瀏覽的關(guān)閉就結(jié)束,但要知道會(huì)話(huà)過(guò)期結(jié)束后,當(dāng)打開(kāi)頁(yè)面session_start()會(huì)
判斷會(huì)話(huà)id 是否存在,如果不存在就創(chuàng)建一個(gè),否則將該會(huì)話(huà)id 的變量載入頁(yè)面!因?yàn)檫^(guò)期session_id會(huì)
被創(chuàng)建一個(gè)新的,但它保存在服務(wù)器端的session文件并沒(méi)有被刪除(關(guān)閉瀏覽器,打開(kāi)session文件保存
地看看),所以要用session_destory()函數(shù)清除會(huì)話(huà)id,并同時(shí)清除相應(yīng)的會(huì)話(huà)文件,這樣的話(huà)才能做到最
徹底的清除!
session_id 使用 url 傳遞session 變量數(shù)據(jù)時(shí),因?yàn)閟ession_start()開(kāi)啟會(huì)話(huà)時(shí)會(huì)判斷會(huì)話(huà)id 是否存
在,如果不存在就創(chuàng)建一個(gè),否則將該會(huì)話(huà)id 的變量載入頁(yè)面!
而現(xiàn)在是使用url 來(lái)傳遞session_id,然而每一次 刷新/進(jìn)入頁(yè)面 都會(huì)生成一個(gè)會(huì)話(huà)id,所以頁(yè)面之間就
不能得到在另一頁(yè)面設(shè)置過(guò)的session_id 的變量,那么使用 session也就沒(méi)什么意義了!
解決方法:在session_start()之前,手動(dòng)設(shè)置頁(yè)面的session_id,這樣頁(yè)面的就可以得到前一頁(yè)中所設(shè)置的
session變量的,也就實(shí)現(xiàn)了會(huì)話(huà)的傳遞,如下代碼可以說(shuō)明!
//已禁用 cookie
1.php
復(fù)制代碼 代碼如下:
<?php
session_start();
$_SESSION['user'] = 'zhaofei299';
echo '<a href="2.php?'.SID.'">下一頁(yè)</a>';
?>
1.php的第4行代碼也可以寫(xiě)成:echo '<a href="2.php">下一頁(yè)</a>';
可以設(shè)置php.ini 中的 session.use_trans_sid 為1,這樣當(dāng)使用 url 傳遞會(huì)話(huà) id 時(shí),
瀏覽器會(huì)自動(dòng)將 session_id 追加到 url 的后面!
就好像 在瀏覽器中 輸入: www.baidu.com 一樣,瀏覽器會(huì)自動(dòng)將其更換成 http://www.baidu.com/
2.php
復(fù)制代碼 代碼如下:
<?php
session_id($_GET['PHPSESSID']); // 手動(dòng)設(shè)置session_id,這種就可以使用前一個(gè)頁(yè)面的
session_id 的變量了,也就實(shí)現(xiàn)了會(huì)話(huà)!
session_start();
print_r($_SESSION);
?>
常用session函數(shù):
復(fù)制代碼 代碼如下:
bool session_start(void); 初始化session
bool session_destroy(void): 刪除服務(wù)器端session關(guān)聯(lián)文件。
string session_id() 當(dāng)前session的id
string session_name() 當(dāng)前存取的session名稱(chēng),也就是客戶(hù)端保存session ID的cookie名稱(chēng).默認(rèn)
PHPSESSID。
array session_get_cookie_params() 與這個(gè)session相關(guān)聯(lián)的session的細(xì)節(jié).
string session_cache_limiter() 控制使用session的頁(yè)面的客戶(hù)端緩存
ini session_cache_expire() 控制客戶(hù)端緩存時(shí)間
bool session_destroy() 刪除服務(wù)器端保存session信息的文件
void session_set_cookie_params ( int lifetime [, string path [, string domain [, bool
secure [, bool httponly]]]] )設(shè)置與這個(gè)session相關(guān)聯(lián)的session的細(xì)節(jié)
bool session_set_save_handler ( callback open, callback close, callback read, callback
write, callback destroy, callback gc )定義處理session的函數(shù),(不是使用默認(rèn)的方式)
bool session_regenerate_id([bool delete_old_session]) 分配新的session id
您可能感興趣的文章:
- PHP入門(mén)教程之會(huì)話(huà)控制技巧(cookie與session)
- PHP會(huì)話(huà)控制:Session與Cookie詳解
- PHP5中Cookie與 Session使用詳解
- php中如何同時(shí)使用session和cookie來(lái)保存用戶(hù)登錄信息
- php session和cookie使用說(shuō)明
- php設(shè)置session值和cookies的學(xué)習(xí)示例
- 詳解PHP中cookie和session的區(qū)別及cookie和session用法小結(jié)
- PHP基于cookie與session統(tǒng)計(jì)網(wǎng)站訪問(wèn)量并輸出顯示的方法
- PHP中cookie和session的區(qū)別實(shí)例分析
- php禁用cookie后session設(shè)置方法分析
- 解析PHP的Yii框架中cookie和session功能的相關(guān)操作
- PHP cookie與session會(huì)話(huà)基本用法實(shí)例分析
相關(guān)文章
PHP設(shè)計(jì)模式之工廠模式實(shí)例總結(jié)
這篇文章主要介紹了PHP設(shè)計(jì)模式之工廠模式,簡(jiǎn)單介紹了工廠模式的概念、原理并結(jié)合實(shí)例形式總結(jié)分析了工廠模式的具體定義及使用方法,需要的朋友可以參考下2017-09-09PHP UTF8編碼內(nèi)的繁簡(jiǎn)轉(zhuǎn)換類(lèi)
在網(wǎng)上找了很久都沒(méi)有找到UTF8字符集內(nèi)的繁簡(jiǎn)轉(zhuǎn)換,或許網(wǎng)上已經(jīng)有人寫(xiě)過(guò)這樣的代碼。2009-07-07PHP MySQL應(yīng)用中使用XOR運(yùn)算加密算法分享
本文將介紹一個(gè)簡(jiǎn)單易用的加密/解密算法:使用異或(XOR)運(yùn)算。本算法原理簡(jiǎn)單,旨在使讀者對(duì)信息的加密/解密有一個(gè)更加直觀的印象。2011-08-08php數(shù)組函數(shù)序列之a(chǎn)rray_flip() 將數(shù)組鍵名與值對(duì)調(diào)
array_flip() 函數(shù)將使數(shù)組的鍵名與其相應(yīng)值調(diào)換,即鍵名變成了值,而值變成了鍵名2011-11-11php通過(guò)文件頭檢測(cè)文件類(lèi)型通用代碼類(lèi)(zip,rar等)
在做web應(yīng)用時(shí)候,通過(guò)web擴(kuò)展名判斷上存文件類(lèi)型,這個(gè)是我們常使用的。2010-10-10