-
cookie的刪除與過(guò)期時(shí)間 通過(guò)前面的章節(jié),我們了解了設(shè)置cookie的函數(shù),但是我們卻發(fā)現(xiàn)php中沒(méi)有刪除Cookie的函數(shù),在PHP中刪除cookie也是采用setcookie函數(shù)來(lái)實(shí)現(xiàn)。 setcookie('test', '', time()-1); 可以看到將cookie的過(guò)期時(shí)間設(shè)置到當(dāng)前時(shí)間之前,則該cookie會(huì)自動(dòng)失效,也就達(dá)到了刪除cookie的目的。之所以這么設(shè)計(jì)是因?yàn)閏ookie是通過(guò)HTTP的標(biāo)頭來(lái)傳遞的,客戶端根據(jù)服務(wù)端返回的Set-Cookie段來(lái)進(jìn)行cookie的設(shè)置,如果刪除cookie需要使用新的Del-Cookie來(lái)實(shí)現(xiàn),則HTTP頭就會(huì)變得復(fù)雜,實(shí)際上僅通過(guò)Set-Cookie就可以簡(jiǎn)單明了的實(shí)現(xiàn)Cookie的設(shè)置、更新與刪除。 了解原理以后,我們也可以直接通過(guò)header來(lái)刪除cookie。 header("Set-Cookie:test=1393832059; expires=".gmdate('D, d M Y H:i:s \G\M\T', time()-1)); 這里用到了gmdate,用來(lái)生成格林威治標(biāo)準(zhǔn)時(shí)間,以便排除時(shí)差的影響。 任務(wù) 刪除test的cookie值。 index.php <?php setcookie('test', time()); //在這里試著刪除test的cookie值 var_dump($_COOKIE);查看全部
-
設(shè)置cookie PHP設(shè)置Cookie最常用的方法就是使用setcookie函數(shù),setcookie具有7個(gè)可選參數(shù),我們常用到的為前5個(gè): name( Cookie名)可以通過(guò)$_COOKIE['name'] 進(jìn)行訪問(wèn) value(Cookie的值) expire(過(guò)期時(shí)間)Unix時(shí)間戳格式,默認(rèn)為0,表示瀏覽器關(guān)閉即失效 path(有效路徑)如果路徑設(shè)置為'/',則整個(gè)網(wǎng)站都有效 domain(有效域)默認(rèn)整個(gè)域名都有效,如果設(shè)置了'idcbgp.cn',則只在www子域中有效 $value = 'test'; setcookie("TestCookie", $value); setcookie("TestCookie", $value, time()+3600); //有效期一小時(shí) setcookie("TestCookie", $value, time()+3600, "/path/", "imooc.com"); //設(shè)置路徑與域 PHP中還有一個(gè)設(shè)置Cookie的函數(shù)setrawcookie,setrawcookie跟setcookie基本一樣,唯一的不同就是value值不會(huì)自動(dòng)的進(jìn)行urlencode,因此在需要的時(shí)候要手動(dòng)的進(jìn)行urlencode。 setrawcookie('cookie_name', rawurlencode($value), time()+60*60*24*365); 因?yàn)镃ookie是通過(guò)HTTP標(biāo)頭進(jìn)行設(shè)置的,所以也可以直接使用header方法進(jìn)行設(shè)置。 header("Set-Cookie:cookie_name=value"); 任務(wù) 使用setcookie設(shè)置一個(gè)名為test,值為$value的Cookie。如果在這執(zhí)行沒(méi)有顯示效果,可以試試自己配置PHP環(huán)境,寫兩個(gè)頁(yè)面,第一個(gè)頁(yè)面寫入cookie,第二個(gè)頁(yè)面輸出cookie。 index.php <?php $value = time(); //在這里設(shè)置一個(gè)名為test的Cookie if (isset($_COOKIE['test'])) { echo 'success'; } 本節(jié)編程練習(xí)不計(jì)算學(xué)習(xí)進(jìn)度,請(qǐng)電腦登錄imooc.com操作查看全部
-
方法就是在類中的function,很多時(shí)候我們分不清方法與函數(shù)有什么差別,在面向過(guò)程的程序設(shè)計(jì)中function叫做函數(shù),在面向?qū)ο笾衒unction則被稱之為方法。
同屬性一樣,類的方法也具有public,protected 以及?private 的訪問(wèn)控制。
訪問(wèn)控制的關(guān)鍵字代表的意義為:
public:公開(kāi)的
protected:受保護(hù)的
private:私有的我們可以這樣定義方法:
class?Car?{ ????public?function?getName()?{ ????????return?'汽車'; ????} } $car?=?new?Car(); echo?$car->getName();
使用關(guān)鍵字static修飾的,稱之為靜態(tài)方法,靜態(tài)方法不需要實(shí)例化對(duì)象,可以通過(guò)類名直接調(diào)用,操作符為雙冒號(hào)::。
class?Car?{ ????public?static?function?getName()?{ ????????return?'汽車'; ????} } echo?Car::getName();?//結(jié)果為“汽車”
查看全部 -
在類中定義的變量稱之為屬性,通常屬性跟數(shù)據(jù)庫(kù)中的字段有一定的關(guān)聯(lián),因此也可以稱作“字段”。屬性聲明是由關(guān)鍵字 public,protected 或者 private 開(kāi)頭,后面跟一個(gè)普通的變量聲明來(lái)組成。屬性的變量可以設(shè)置初始化的默認(rèn)值,默認(rèn)值必須是常量。
訪問(wèn)控制的關(guān)鍵字代表的意義為:
public:公開(kāi)的
protected:受保護(hù)的
private:私有的默認(rèn)都為public,外部可以訪問(wèn)。一般通過(guò)->對(duì)象操作符來(lái)訪問(wèn)對(duì)象的屬性或者方法,對(duì)于靜態(tài)屬性則使用::雙冒號(hào)進(jìn)行訪問(wèn)。當(dāng)在類成員方法內(nèi)部調(diào)用的時(shí)候,可以使用$this偽變量調(diào)用當(dāng)前對(duì)象的屬性。
受保護(hù)的屬性與私有屬性不允許外部調(diào)用,在類的成員方法內(nèi)部是可以調(diào)用的。
查看全部 -
php 屬性的重載
通過(guò)__set __get? __isset? __unset 分別實(shí)現(xiàn)對(duì)不存在的屬性的賦值、讀取、判斷屬性是否設(shè)置、銷毀屬性;
__call 實(shí)現(xiàn)方法的重載,
例:?
class?Car?{ ????public?$speed?=?0; ???? ????public?function?__call($name,?$args)?{ ????????if?($name?==?'speedUp')?{ ????????????$this->speed?+=?10; ????????} ????} } $car?=?new?Car(); $car->speedUp();?//調(diào)用不存在的方法會(huì)使用重載 echo?$car->speed;
查看全部 -
__construct() 構(gòu)造函數(shù) 在對(duì)象初始化的時(shí)候執(zhí)行;
如果在子類中定義了 __construct()函數(shù),則不會(huì)調(diào)用父級(jí)的構(gòu)造函數(shù),如果需要調(diào)用,需要使用 parent::__contruct();?
__destruct() 析構(gòu)函數(shù) 在對(duì)象銷毀的時(shí)候執(zhí)行;
析構(gòu)函數(shù)在PHP代碼執(zhí)行完畢后會(huì)自動(dòng)回收與銷毀,因此一般不需要顯式的銷毀
查看全部 -
使用 static 關(guān)鍵字修飾的,成為靜態(tài)方法,靜態(tài)方法不需要實(shí)例化對(duì)象,可以通過(guò)類名直接調(diào)用,操作符偽雙冒號(hào) ::??
class?Car?{ ????public?static?function?getName()?{ ????????return?'汽車'; ????} } echo?Car::getName();?//結(jié)果為“汽車”
查看全部 -
public 公開(kāi)的,定義公有屬性和方法,可以允許外部調(diào)用;
protected 受保護(hù)的,不允許外部調(diào)用
private 私有的的,不允許外部調(diào)用
protected、private 在類的成員方法內(nèi)部是可以調(diào)用的;
class?Car{ ????private?$price?=?'1000'; ????public?function?getPrice()?{ ????????return?$this->price;?//內(nèi)部訪問(wèn)私有屬性????}}
查看全部 -
print_r(array);? 可以輸出數(shù)組鍵及對(duì)應(yīng)的值
查看全部 -
//* 將用戶數(shù)據(jù)保存到cookie中的一個(gè)簡(jiǎn)單方法 */
$secureKey = 'imooc'; //加密密鑰
$str = serialize($userinfo); //將用戶信息序列化
//用戶信息加密前
$str = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($secureKey), $str, MCRYPT_MODE_ECB));
//用戶信息加密后
//將加密后的用戶數(shù)據(jù)存儲(chǔ)到cookie中
setcookie('userinfo', $str);
//當(dāng)需要使用時(shí)進(jìn)行解密
$str = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($secureKey), base64_decode($str), MCRYPT_MODE_ECB);
$uinfo = unserialize($str);
echo "解密后的用戶信息:<br>";
print_r($uinfo);
查看全部 -
類是一類東西的結(jié)構(gòu)描述,而對(duì)象則是一類東西的一個(gè)具體實(shí)例。
查看全部 -
PHP進(jìn)階篇-函數(shù) :http://idcbgp.cn/learn/737
PHP進(jìn)階篇-日期時(shí)間函數(shù):http://idcbgp.cn/learn/698
PHP進(jìn)階篇-GD庫(kù)圖像處理:http://idcbgp.cn/learn/701
PHP進(jìn)階篇-字符串操作:http://idcbgp.cn/learn/726查看全部 -
數(shù)據(jù)庫(kù)連接及查詢
$link1?=?mysql_connect('127.0.0.1',?'code1',?''); $link2?=?mysql_connect('127.0.0.1',?'code1',?'',?true);?//開(kāi)啟一個(gè)新的連接 $res?=?mysql_query('select?*?from?user?limit?1',?$link1);?//從第一個(gè)連接中查詢數(shù)據(jù)
查看全部 -
通過(guò)我們需要將報(bào)錯(cuò)的文件名、行號(hào)、錯(cuò)誤信息、異常追蹤信息等記錄到日志中,以便調(diào)試與修復(fù)問(wèn)題。
查看全部 -
Exception具有幾個(gè)基本屬性與方法,其中包括了:
message 異常消息內(nèi)容
code 異常代碼
file 拋出異常的文件名
line 拋出異常在該文件的行數(shù)其中常用的方法有:
getTrace 獲取異常追蹤信息
getTraceAsString 獲取異常追蹤信息的字符串
getMessage 獲取出錯(cuò)信息查看全部
舉報(bào)