php小结,PHP编程小结
擴(kuò)展庫(kù)
l通過標(biāo)記中的src屬性,不但可以調(diào)用同一個(gè)服務(wù)器上的JS文件,還可以通過指定路徑來調(diào)用其他服務(wù)器上的JS文件
日期和時(shí)間
?更改PHP語(yǔ)言中的時(shí)區(qū)設(shè)置有兩種方法:修改php.ini,在[date]下的“;date.timezone=”選項(xiàng),將其修改為“date.timezone=Asia/Hong_Kong”;2.在應(yīng)用程序中,在使用時(shí)間日期函數(shù)之前添加函數(shù)date_default_timezone_set(timezone),timezone為PHP可識(shí)別的時(shí)區(qū)名稱。
?Mktime()函數(shù)將一個(gè)時(shí)間轉(zhuǎn)換成UNIX的時(shí)間戳(從1970年到現(xiàn)在的秒數(shù))int mktime(int hour, int minute, int second, int month, int day,
int year, is_dst(是否設(shè)置夏令時(shí))
?Date函數(shù)可以將UNIX時(shí)間戳轉(zhuǎn)換為日期和時(shí)間
?Time()獲取當(dāng)前時(shí)間戳
?Date(string format[, int timestamp])獲取當(dāng)前日期和時(shí)間
?Array getdate(int timestamp )以數(shù)組形式返還日期
?Bool checkdate(int month, int day, int year)檢驗(yàn)日期的有效期(一年多少天之類)
?PHP中的時(shí)間是不可以直接進(jìn)行比較的,所以首先要將事件解析為時(shí)間戳的格式,然后再進(jìn)行比較。Strtotime()函數(shù)可以完成該操作
Cookie與Session
?Cookie的管理:
nCookie是在HTTP協(xié)議下,通過服務(wù)器或腳本語(yǔ)言可以維護(hù)客戶瀏覽器上信息的一種方式。
nCookie是一種在客戶瀏覽器端粗處數(shù)據(jù)并以此來跟蹤和識(shí)別用戶的機(jī)制。Cookie是Web服務(wù)器暫時(shí)存儲(chǔ)在用戶硬盤上的一個(gè)文本文件,并隨后被Web瀏覽器讀取。當(dāng)用戶再次訪問該Web網(wǎng)站時(shí),網(wǎng)站通過讀取Cookie文件記錄這位訪客的特定信息。
nCookie文本文件的命令格式如下:用戶名@網(wǎng)站地址[數(shù)字].txt。
nPHP中通過setcookie()函數(shù)創(chuàng)建Cookie,bool setcookie(string name[, string value [, int ex[ire[, stringpath[, string domain[. Int secure]]]]]]
uCookie是HTTP頭標(biāo)的組成部分,而頭標(biāo)必須在頁(yè)面其他內(nèi)容之前發(fā)送,因此它必須最先輸出。若在setcookie()函數(shù)前輸出一個(gè)HTML標(biāo)記、echo語(yǔ)句、甚至一個(gè)空號(hào)都會(huì)導(dǎo)致程序出錯(cuò)。
uName:cookie的變量名,可以通過$_COOKIE[“cookiename”]調(diào)用變量名為cookiename的Cookie
uValue:Cookie變量的值,該值保存在客戶端
uExpire:Cookie的失效時(shí)間,如果未設(shè)置Cookie的失效時(shí)間,則在關(guān)閉瀏覽器時(shí)自動(dòng)刪除Cookie數(shù)據(jù);如果為Cookie設(shè)置了失效時(shí)間,瀏覽器將會(huì)記住Cookie數(shù)據(jù),即使用戶重啟計(jì)算機(jī),只要沒到期,再次訪問網(wǎng)站是也會(huì)獲得數(shù)據(jù)。
uPath:Cookie在服務(wù)器端的有效路徑,如果該參數(shù)設(shè)置為”\”,則它將整個(gè)domain內(nèi)有效;如果設(shè)置為“/11”,它將在domain下/11目錄及子目錄內(nèi)有效。
uDomain:Cookie有效的域名,如果要是Cookie在mrbccd.com域名下的所有子域名都有效,應(yīng)該設(shè)置mrbccd.com
uSecure:指明Cookie是否僅通過安全的HTTPS,值為0或1,如果為1,Cookie只能在HTTPS連接上有效;默認(rèn)為0,Cookie在HTTP和HTTPS連接上均有效。
n讀取Cookie
u在PHP中可以直接通過超級(jí)全局?jǐn)?shù)組$_COOKIE[]來讀取瀏覽器端餓的Cookie值。
n刪除Cookie
uSetcookie(“name”,””,time()-1)
nCookie的生命周期
u如果Cookie不設(shè)定失效時(shí)間,它的生命周期就為瀏覽器會(huì)話期間,這種Cookie被稱為會(huì)話Cookie,一般不保存在硬盤上,而是保存在內(nèi)存中。
u瀏覽器最多允許存儲(chǔ)300個(gè)Cookie文件,每個(gè)Cookie文件支持最大容量為4KB;每個(gè)域名最多支持20個(gè)Cookie,如果達(dá)到限制時(shí),瀏覽器會(huì)自動(dòng)隨機(jī)刪除Cookie文件。
?Session
nSession會(huì)話文件中保存的數(shù)據(jù)在PHP腳本中是以變量的形式創(chuàng)建的,創(chuàng)建的會(huì)話變量在生命周期(20分鐘)中可以被跨頁(yè)的請(qǐng)求所引用
nSession會(huì)話是存儲(chǔ)在服務(wù)器端的,相對(duì)安全,并且不像Cookie那樣有存儲(chǔ)長(zhǎng)度的限制。
nSession工作原理:當(dāng)啟動(dòng)一個(gè)Session時(shí),會(huì)生成一個(gè)隨機(jī)且唯一的session_id,也就是Session的文件名,此時(shí)session_id存儲(chǔ)在服務(wù)器的內(nèi)存中。當(dāng)關(guān)閉頁(yè)面時(shí)此id會(huì)自動(dòng)注銷,重新登錄此頁(yè)面,會(huì)再次生成一個(gè)隨機(jī)且唯一的id。
n創(chuàng)建會(huì)話
u創(chuàng)建一個(gè)會(huì)話需要通過以下步驟:啟動(dòng)會(huì)話à注冊(cè)會(huì)話à使用會(huì)話à刪除會(huì)話
u啟動(dòng)會(huì)話,有兩種方式:1.
Session_start()函數(shù),2.使用session_register()函數(shù)為會(huì)話創(chuàng)建一個(gè)變量來隱含地啟動(dòng)會(huì)話。
lSession_start()函數(shù)在頁(yè)面開始位置調(diào)用,然后會(huì)話變量被登錄到數(shù)據(jù)$_SESSION。
l使用session_start()函數(shù)之前瀏覽器不能有任何輸出。
u注冊(cè)會(huì)話,會(huì)話變量被創(chuàng)建后,全部保存在數(shù)組$_SESSION中。通過數(shù)組$_SESSION創(chuàng)建一個(gè)會(huì)話變量很容易,只要直接給該數(shù)組添加一個(gè)元素即可$_SESSION[‘a(chǎn)dmin”]=xx;
u使用會(huì)話:判斷會(huì)話變量是否有一個(gè)會(huì)話ID存在,如果存在,則將這個(gè)已創(chuàng)建的會(huì)話變量載入以供用戶使用。如!empty($_SESSION[‘session_name’])) $myvalue = $_SESSION[‘session_name’];
u刪除會(huì)話:刪除會(huì)話的方法主要有刪除單個(gè)會(huì)話、刪除多個(gè)會(huì)話和結(jié)束當(dāng)前會(huì)話3種
l刪除單個(gè)會(huì)話:即刪除單個(gè)會(huì)話變量,unset($_SESSION[‘user’])
l刪除多個(gè)會(huì)話:$_SESSION= array()
l結(jié)束當(dāng)前會(huì)話:session_destroy();
nSession設(shè)置失效時(shí)間
uSession失效時(shí)間設(shè)置主要有以下兩種方法:
l客戶端沒有禁止Cookie
n(不推薦)使用session_set_cookie_params($time);示例為$time=1*60; session_set_cookie_params($time); session_start();
n使用setcookie()函數(shù)可對(duì)Session設(shè)置失效時(shí)間
uSession_start(); $time = 1*60; setcookie(session_name(),session_id(), time()+$time, “/”);
nSession臨時(shí)文件存儲(chǔ)位置,可以由session_save_path($path)完成
nSession緩存:將網(wǎng)頁(yè)中的內(nèi)容臨時(shí)存儲(chǔ)到IE客戶端的Temporary Internet Files文件夾下,并可以設(shè)置緩存的時(shí)間,session_cache_limiter()函數(shù)設(shè)置緩存;session_cache_expire()設(shè)置緩存時(shí)間。Session_cache_limiter()和session_cache_expire()必須在session_start()之前調(diào)用。
nSession數(shù)據(jù)庫(kù)存儲(chǔ)bool session_set_save_handler(string open, string close, string
read, string write, string destroy, string gc),其中的參數(shù)其實(shí)都是函數(shù)名
圖像支持
文件系統(tǒng)
面向?qū)ο?/p>
?類的定義
class SportObject {
function beatBasketball()($name, $height) {
}
}
?類的實(shí)例化:通過關(guān)鍵字new來聲明一個(gè)對(duì)象;然后通過對(duì)象名->成員方法來調(diào)用要使用的方法
?成員變量的格式為:關(guān)鍵字成員變量名,關(guān)鍵字可以使用public、private、protected、static、final中的任意一個(gè)。訪問成員變量的方式也是對(duì)象名->成員變量
nProtected:指可以在本類及子類中被調(diào)用;
nStatic:不需要實(shí)例化對(duì)象,直接可調(diào)用,“self::靜態(tài)成員“或者”類名::靜態(tài)成員”即可訪問。可以是靜態(tài)變量也可以是靜態(tài)方法。靜態(tài)方法中只能調(diào)用靜態(tài)變量、不能調(diào)用普通變量。
nFinal:被final修飾過的類和方法就是“最終的版本”
uFinal class classname {}說明該類不可以再被繼承
uFinal function methodname()說明該方法在子類中不可以進(jìn)行重寫,也不可以被覆蓋。
?類常量,定義時(shí)使用關(guān)鍵字const,如const
PI=3.14159。常量不需要實(shí)例化對(duì)象,直接由“類名::常量名”調(diào)用即可。
?構(gòu)造函數(shù):void
__construct([mixed args [,…]]);如果類中沒有構(gòu)造方法,那么PHP會(huì)自動(dòng)生成一個(gè)。自動(dòng)生成的構(gòu)造方法沒有任何參數(shù),沒有任何操作
?析構(gòu)方法:void
__destruct(void)一般情況下是不需要收到創(chuàng)建析構(gòu)方法的。
?繼承:class subClassextends superclass { … }
?多態(tài):存在兩種形式:覆蓋和重載,覆蓋就是子類和父類中的方法名稱及參數(shù)完全相同;重載就是方法名稱相同,但是參數(shù)個(gè)數(shù)或類型不同。
?子類不僅可以調(diào)用自己的變量和方法,也可以調(diào)用父類中的變量和方法:
n$this->調(diào)用本身的變量或方法,$this只能在類的內(nèi)部使用
n“::”可以在沒有聲明任何實(shí)例的情況下訪問類中的成員方法或成員變量。通用格式為“關(guān)鍵字::變量名/常量名/方法名”,關(guān)鍵字分為三種情況:parent(調(diào)用父類中的成員變量、方法和常量)、self(調(diào)用當(dāng)前類中的靜態(tài)成員和常量)、類名(調(diào)用奔雷中的變量、常量和方法)
?抽象類
n僅能作為其他類的父類來使用,不能被實(shí)例化
nAbstract class abstractName{}
n抽象類中至少要包含一個(gè)抽象方法,抽象方法沒有方法體,abstract function abstractName();
?接口的使用
nPHP只支持單繼承,如果想實(shí)現(xiàn)多重繼承,就要使用接口
nPHP可以實(shí)現(xiàn)多個(gè)接口
n接口類通過interface關(guān)鍵字來聲明,并且類中只能包含未實(shí)現(xiàn)的方法和一些成員變量,格式為interface InterfaceNmae { function interfaceName1(); }
n不要用public之外的關(guān)鍵字來修飾接口中的類成員,對(duì)于方法,不寫關(guān)鍵字也可以。
n子類是通過implements關(guān)鍵字來實(shí)現(xiàn)接口的,如果實(shí)現(xiàn)多個(gè)接口,那么每個(gè)接口之間應(yīng)使用逗號(hào)“,”隔開。接口類中所有未實(shí)現(xiàn)的方法需要在子類中全部實(shí)現(xiàn)。
uClass SubClass implement InterfaceName1, InterfaceName2 { }
?各個(gè)類可以實(shí)現(xiàn)自己的復(fù)制拷貝函數(shù)__clone()
n對(duì)象可以調(diào)用clone,實(shí)現(xiàn)對(duì)象的復(fù)制;PHP5之后,=默認(rèn)是指引用
n兩個(gè)等號(hào)“==”是比較兩個(gè)對(duì)象的內(nèi)容
n三個(gè)等號(hào)“===”是比較對(duì)象的引用地址
?Instanceof:objectName instanceof ClassName,檢測(cè)當(dāng)前對(duì)象是屬于哪個(gè)類
?魔術(shù)方法__
nPHP中保留了所有以“__”開頭的方法,所以只能使用PHP中已有的這些方法,不要自己創(chuàng)建
n__set()、__get()
n__call()
n__sleep()和__wakeup()
u__sleep()可以清除對(duì)象并返回一個(gè)包含該對(duì)象中所有變量的數(shù)組
u__wakeup()方法則是恢復(fù)在序列號(hào)中可能丟失的數(shù)據(jù)庫(kù)連接及相關(guān)工作。
n__toString()將對(duì)象轉(zhuǎn)化為字符串
n__autoload()避免在一個(gè)頁(yè)面引入多個(gè)類時(shí)需要使用include_once()函數(shù)或require_once()函數(shù)一個(gè)個(gè)引入,__autoload()方法可以自動(dòng)實(shí)例化需要使用的類。PHP5將調(diào)用__autoload()方法,在指定的路徑下自動(dòng)查找和該類名稱相同的文件,如果找到,程序則繼續(xù)執(zhí)行;否則,報(bào)告錯(cuò)誤。
PHP加密技術(shù)
?單向加密:String
crypt(string str[, string salt]);支持4種算法:CRYPT_STD_DES、CRYPT_EXT_DES、CRYPT_MD5、CRYPT_BLOWFISH
?md5():
?sha1()
?
PHP操作MySQL數(shù)據(jù)庫(kù)
?Mysql_connect()、mysql_select_db()、mysql_query()、mysql_fetch_array()、mysql_fetch_object()、mysql_fetch_row()、mysql_num_rows()、
PHP數(shù)據(jù)庫(kù)抽象層
?PDO是PHP data object,支持多種數(shù)據(jù)庫(kù),有了PDO,用戶不必再使用mysql_*函數(shù)
?PDO構(gòu)造函數(shù)__construct(string $dsn[,string $username[,string $password[,array$driver_options]]])
nDsn是data source name的首字母縮寫,包括三個(gè)部分:PDO驅(qū)動(dòng)名稱(如mysql、sqlite、pgsql)、冒號(hào)和驅(qū)動(dòng)特定的語(yǔ)法。
?Int PDO:exec(string statement)返回執(zhí)行SQL語(yǔ)句后受影響的行數(shù)
?PDOStatement PDO::query(string statment)參數(shù)statement是要執(zhí)行的SQL語(yǔ)句,他返回的是一個(gè)PDOStatement對(duì)象
?PDO事務(wù)處理
?PDO存儲(chǔ)過程
ThinkPHP框架
Smarty模板技術(shù)
PHP與XML技術(shù)
PHP與Ajax技術(shù)
?Ajax = Asynchronous JavaScript And XML的縮寫
?Ajax在用戶和服務(wù)器之間引入一個(gè)中間媒介(Ajax引擎),Web頁(yè)面不用打斷交互流程進(jìn)行重新加載即可動(dòng)態(tài)地更新。
?Ajax利用JS將DOM、XHTML(或HTML)、XML以及CSS等技術(shù)綜合起來,并控制它們的行為
?Ajax技術(shù)中,最核心的技術(shù)就是XMLHttpRequest
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的php小结,PHP编程小结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Erlang转JAVA,将Erlang
- 下一篇: php客户反馈发邮箱,PHP实现通过ge