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