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