第2章PHP的語法結(jié)構(gòu)和常用函數(shù).ppt_第1頁
第2章PHP的語法結(jié)構(gòu)和常用函數(shù).ppt_第2頁
第2章PHP的語法結(jié)構(gòu)和常用函數(shù).ppt_第3頁
第2章PHP的語法結(jié)構(gòu)和常用函數(shù).ppt_第4頁
第2章PHP的語法結(jié)構(gòu)和常用函數(shù).ppt_第5頁
已閱讀5頁,還剩53頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),煙臺(tái)南山學(xué)院軟件工程學(xué)院,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),2,本章主要內(nèi)容,PHP語法基礎(chǔ); PHP的數(shù)據(jù)存儲(chǔ)處理; PHP5的字符串處理; PHP5的日期時(shí)間處理; PHP的URL處理;,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),3,5語法基礎(chǔ) PHP的基本語法,打開記事本,編寫以下程序,保存為hello.php: PHP 測試 ; echo 歡迎您使用.$lang_name; /print 這里使用$lang_name打印文本rn; printf(這是一個(gè)類似C語言的顯示樣式rn); /* PHP的多行注釋 */ ? 這是一個(gè)超級(jí)的測試. ,第2章 PHP

2、的語法結(jié)構(gòu)和常用函數(shù),4,5語法基礎(chǔ) PHP的基本語法,嵌入HTML方法; 以”結(jié)束,中間為PHP代碼。 以開頭,以結(jié)束,中間為PHP操作代碼。 以”結(jié)束,中間為PHP操作代碼。變量嵌入使用格式。 以“”結(jié)束,中間是PHP操作代碼。變量嵌入使用,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),5,5語法基礎(chǔ) PHP的基本語法,程序的注釋主要分3類,即單行注釋、多行注釋和程序間注釋。(參看hello.php) “/”標(biāo)記僅僅注釋到行末; “/* */”標(biāo)記則注釋整個(gè)代碼塊;不能嵌套使用 “/* */”標(biāo)記 “#”標(biāo)記則能注釋單行或者程序間的某一段代碼。,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),6,5語法基礎(chǔ) P

3、HP的基本語法,文件包含有require和include兩種方式。 require函數(shù)通常放在PHP程序前面。程序執(zhí)行前,先讀入require所指定引入的文件。系統(tǒng)公用的函數(shù)部分,可使用這種方法引入需要的文件。 include函數(shù)一般放在流程控制的處理部分,PHP程序讀到include文件時(shí),才會(huì)讀入引入的文件。 include(“mysql.db.class.php”); require(“mysql.db.class.php”); 使用require包含的文件中若有語法錯(cuò)誤或不存在時(shí)會(huì)提示警告Fatal error,并立即終止程序運(yùn)行;而include只是顯示W(wǎng)arning警告錯(cuò)誤,然后繼

4、續(xù)執(zhí)行該腳本后面的語句。,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),7,5語法基礎(chǔ) PHP的數(shù)據(jù)類型,PHP的數(shù)據(jù)類型主要有8種:即字符串型、布爾型、整型、浮點(diǎn)型、數(shù)組、對(duì)象、資源和NULL。,字符串型為string,無論是單一字符還是多個(gè)字符都是用這個(gè)變量類型。PHP允許使用單引號(hào)、雙引號(hào)或來定義一個(gè)字符串變量。,表2-1 轉(zhuǎn)義字符,; echo 這是$b ;echo 這是$b ; echo 這是$a與$b演示; ?,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),8,5語法基礎(chǔ) PHP的數(shù)據(jù)類型,布爾型是最簡單的類型。Boolean表達(dá)了真假,可以為True或False。關(guān)鍵字True或False大小寫不敏

5、感。 當(dāng)使用布爾型變量進(jìn)行控制流程時(shí),直接使用即可,無需和true關(guān)鍵字進(jìn)行比較。如:if($show_br) 整型為Integer,有效范圍是 ,可以用十進(jìn)制、八進(jìn)制或十六進(jìn)制制定,前面還可以加上可選的符號(hào)“+”或“-”標(biāo)識(shí)正負(fù)。 .$b .$c .$d; ? 浮點(diǎn)型又稱雙精度型,有效范圍是 。,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),9,5語法基礎(chǔ) PHP的數(shù)據(jù)類型,數(shù)組就是把一系列數(shù)字和字符串作為一個(gè)單元來進(jìn)行處理。有一維、二維、三維或多維數(shù)組,其中的元素可以是integer或string。PHP數(shù)組下標(biāo)可以同時(shí)包含整型和字符串型,下標(biāo)的類型不會(huì)對(duì)數(shù)組造成影響。 數(shù)組的語法結(jié)構(gòu)為:array

6、(key1=value1,key1=value1,) php,8=2.0); echo $arrbook; echo ; echo $arr8; printf($%01.2f, $arr8); ? array(6=15,12=4,database=mysql); echo $arrphpbook6; echo ; echo $arrphpbook12; echo ; echo $arrphpbookdatabase; ?,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),10,5語法基礎(chǔ) PHP的數(shù)據(jù)類型,如果給出的值沒有指定鍵名,則取當(dāng)前最大的整數(shù)索引值,而新的鍵名將在該值的基礎(chǔ)上加1。如果使用NULL作

7、為鍵名,將等同于使用空字符串;而使用空字符串作為鍵名,將新建或覆蓋一個(gè)空字符串作為鍵名。注意,不能用數(shù)組和對(duì)象作為鍵名。 42,35,56,book=2); $arr2=array(5=42,6=35,7=56,book=2); echo $arr16; echo ; echo $arr26; echo ; print_r($arr1); echo ; print_r($arr2); echo ; $arr3=array(null=11,=22); print_r($arr3); echo ; $arr4=array(null=11, =33); print_r($arr4); echo ;

8、?,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),11,5語法基礎(chǔ) PHP的數(shù)據(jù)類型,給數(shù)組某一元素賦值,或改變某一現(xiàn)有元素的值。$arrkey=value,或$arr=value。如果數(shù)組不存在將會(huì)新建一個(gè)數(shù)組。 刪除鍵名和值對(duì),使用unset函數(shù)釋放變量。,1,12=2); $arr=3; print_r($arr); echo ; $arr5=4; print_r($arr); echo ; ?,1,12=2); $arr=3; $arrx=4; print_r($arr); echo ; unset($arr5); print_r($arr); echo “”; unset($arr); pri

9、nt_r($arr); ?,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),12,5語法基礎(chǔ) PHP的數(shù)據(jù)類型,數(shù)組b $b=a; $b=b; $b=c;等同于array(0=a,1=b,2=c),或者簡單構(gòu)造形式array(a,b,c)。 因?yàn)橐粋€(gè)數(shù)組的值可以是另一個(gè)數(shù)組。這樣就可以產(chǎn)生遞歸或多維數(shù)組。 array(a=red, b=blue,c=black), number=array(1,2,3,4,5),phpbook=array(first,3=second,third); echo $arraysphpbook3; echo ; echo $arrayscolorsa; echo ; echo

10、 $arraysphpbook0; echo ; $testphpbook=this is a good book! ?,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),13,5語法基礎(chǔ) PHP的數(shù)據(jù)類型,對(duì)象類型為Object,目前PHP中的類不多。要初始化一個(gè)對(duì)象,可以使用new語句將對(duì)象實(shí)例到一個(gè)變量中。 items$name+=$num; function remove_item($name,$num) if($this-items$name$num) $this-items$name-=$num; return true; else return false; $mycart=new Cart(

11、); $item0_name=PHP網(wǎng)絡(luò); $item0_num=2; $mycart-add_item($item0_name,$item0_num); $item1_name=MySQL網(wǎng)絡(luò)編程指南; $item1_num=1; $mycart-add_item($item1_name,$item1_num); print_r($mycart-items); echo; $mycart-remove_item($item0_name,1); print_r($mycart-items); ?,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),14,5語法基礎(chǔ) PHP的數(shù)據(jù)類型,資源 一個(gè)資源是一個(gè)特殊變

12、量,保存了外部資源的一個(gè)引用。資源是通過專門的函數(shù)來建立和使用的。 NULL是PHP中一個(gè)特殊的數(shù)據(jù)類型,它表示變量沒有值。NULL類型唯一可能的值就是NULL。 在下列情況下,一個(gè)變量被認(rèn)為是NULL: 變量賦值為NULL; 變量尚未賦值; 變量被unset函數(shù)釋放。,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),15,5語法基礎(chǔ) PHP的常量,預(yù)定義常量 PHP為腳本提供了大量的預(yù)定義常量,這些常量都是由不同的擴(kuò)展庫定義的,只有加載了這些擴(kuò)展庫才會(huì)出現(xiàn),這些擴(kuò)展庫可以動(dòng)態(tài)加載,也可以在編譯安裝PHP時(shí)加載。,表2-2 PHP的預(yù)定義常量,其他常量 除了預(yù)定義常量外,PHP中還包括一些其他的常量。如P

13、HP_VERSION,PHP_OS,E_ERROR,E_WARNING,E_PARSE, E_NOTICE。,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),16,5語法基礎(chǔ) PHP的常量,自定義常量 用define函數(shù)來定義自己的常量。 格式:define(“CONSTANT_NAME”,常量值,TRUEFALSE) 說明:1)“CONSTANT_NAME”,表示常量名稱,且必須是一個(gè)大寫字符串;2)常量的值可以是任意的字符串內(nèi)容;3)所有常量的作用范圍具備全局作用域;4)第三個(gè)參數(shù)用于區(qū)分大小寫,默認(rèn)為FALSE,即設(shè)定區(qū)分大小寫。 ,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),17,5語法基礎(chǔ) PHP的變量

14、,PHP變量以$開頭,以名稱作為變量之間的區(qū)分。PHP變量的命名規(guī)則: 變量名長度為=255個(gè)字符,可以包含字母、數(shù)字、下劃線; 變量名不能以數(shù)字開頭; 變量名嚴(yán)格區(qū)分大小寫; 不允許使用與PHP內(nèi)置函數(shù)相同的名稱; 在使用變量時(shí),事先應(yīng)該聲明變量,否則PHP5會(huì)提示警告錯(cuò)誤。 判斷下列變量名稱是否正確 $_1na=12; $myweb=“”; $163site=“”; $我的變量=“test”,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),18,5語法基礎(chǔ) PHP的變量,常規(guī)變量的初始化:$var_name=value。例如:$num=123;$str=“phpbook”;$bool=false;$a

15、=1.2e3;$var=null; 數(shù)組變量的初始化 $數(shù)組名鍵名=value;如:$animalsa=老虎; $數(shù)組名=array(鍵名1=value1,鍵名2=value2,); $birds=array(b1=貓頭鷹,b2=喜鵲); $數(shù)組名=value;如:$mon=三月; $mon=五月; $數(shù)組名=array(value1,value2,);如:$arr=array(a,b,c);,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),19,5語法基礎(chǔ) PHP的變量,對(duì)象變量的初始化:$Object_name=new 類名(); 變量的使用 (1)變量的有效范圍 通常情況下,變量的有效范圍僅限于定義

16、它的上下文。在自定義函數(shù)中,使用的所有變量的作用范圍都限制在本函數(shù)內(nèi)。全局變量的有效范圍僅局限于主程序中,不會(huì)影響到函數(shù)中同名的變量。,currentChapter(); ?,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),20,5語法基礎(chǔ) PHP的變量,(2)PHP中的靜態(tài)變量 執(zhí)行完函數(shù)后希望保留此次變量的值,這時(shí)就可以使用靜態(tài)變量static variable。 動(dòng)態(tài)變量允許引用已有變量的值作為一個(gè)新變量的名字。 $i=“hello”; $i=“chengwei”; $a1表示引用以$a1的值為變量名的變量;$a1表示名為$a的數(shù)組的第1個(gè)元素。,; echo $i.; echo $i,$hello

17、; ?,; myfunc(); myfunc(); myfunc(); ?,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),21,5語法基礎(chǔ) PHP的變量,外部變量 (1)頁面表單變量$_GET和$_POST 把一個(gè)表單提交給PHP腳本處理時(shí),表單中的信息會(huì)在腳本中形成變量。下例為使用POST方法提交表單。 同樣,如果提交的表單使用GET方法,只需把以上程序中的$_POST改為$_GET即可。,; echo $_REQUESTusername.; import_request_variables(p,p_); echo $p_username.; echo $HTTP_POST_VARSUSERNAME.

18、; echo $username.; ? 標(biāo)題: 作者: ,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),22,5語法基礎(chǔ) PHP的變量,PHP腳本還可以處理表單上下文的數(shù)組變量。比如可以將相關(guān)的變量組成一個(gè)數(shù)組或者從多選輸入框中取得相應(yīng)的值。 例題:P61,程序2-22.,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),23,5語法基礎(chǔ) PHP的表達(dá)式,表達(dá)式由操作數(shù)、操作符和括號(hào)組成的序列。 一個(gè)簡單的表達(dá)式就是一個(gè)常量或者標(biāo)識(shí)對(duì)象的標(biāo)識(shí)符,它的值就是常量或?qū)ο蟊旧恚蝗纾篿f(a) 一個(gè)表達(dá)式的值可以用來參與其他的操作,即可以和其他操作數(shù)、操作符號(hào)一起形成復(fù)雜的表達(dá)式;如:a+b 在括號(hào)中表達(dá)式仍是一個(gè)表達(dá)式,

19、其類型和值與未加括號(hào)時(shí)是完全一樣的。 表達(dá)式是由一個(gè)或多個(gè)操作符連接起來的操作數(shù),用來計(jì)算出一個(gè)值(標(biāo)量或數(shù)組最基本的表達(dá)式就是數(shù)字)。,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),24,5語法基礎(chǔ) PHP的表達(dá)式,表達(dá)式的分類 簡單表達(dá)式是由一個(gè)單一的賦值符或一個(gè)單一的函數(shù)調(diào)用組成的。如:init_db(); $a=1; $arr=array(1,2); 注意應(yīng)盡量減少簡單表達(dá)式的副作用,減少global關(guān)鍵字的使用。 復(fù)雜表達(dá)式可以以任意順序使用任意數(shù)量的數(shù)值、操作符和函數(shù)。如:$num+2/sin(45)*9-2,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),25,5語法基礎(chǔ) PHP的表達(dá)式,運(yùn)算符號(hào) P

20、HP包含三種類型的操作符:一元操作符、二元操作符和三元操作符。 在使用PHP進(jìn)行數(shù)值計(jì)算時(shí),需將操作符兩邊的數(shù)據(jù)類型盡量匹配,否則可能出錯(cuò),PHP也會(huì)根據(jù)表達(dá)式的操作自動(dòng)轉(zhuǎn)換它們的數(shù)據(jù)類型。PHP還會(huì)根據(jù)數(shù)據(jù)精度自動(dòng)計(jì)算。,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),26,5語法基礎(chǔ) PHP的表達(dá)式,布爾值,NULL和資源在被打印時(shí),也會(huì)被PHP轉(zhuǎn)換為可顯示的實(shí)型值或字符串。 布爾值的False被顯示為0,True被顯示為1;NULL顯示為空字符串。,; echo $val4.; echo $val3; ?,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),27,5語法基礎(chǔ) PHP的表達(dá)式,字符串運(yùn)算 主要有兩個(gè)運(yùn)

21、算符:一個(gè)是連接運(yùn)算符 ”.”,另一個(gè)是連接并賦值運(yùn)算符 ”.=”,它將運(yùn)算符右邊參數(shù)值附加到左邊參數(shù)后返回。 位運(yùn)算符 位運(yùn)算符允許對(duì)整型數(shù)中指定的位進(jìn)行運(yùn)算。如果左右兩邊的參數(shù)都是字符串,則位運(yùn)算符將操作該字符串中對(duì)應(yīng)的字符。,; echo $val2.; $val1.=world!; echo $val1; ?,; echo $val1; echo $val1; echo ; echo $val2; ?,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),28,5語法基礎(chǔ) PHP的表達(dá)式,引用運(yùn)算符 “引用”實(shí)際是指兩個(gè)變量名用了一個(gè)相同的變量值,即這兩個(gè)變量有一個(gè)相同的內(nèi)存地址。 如果一個(gè)函數(shù)返回一個(gè)

22、變量的引用,同樣可以分配一個(gè)引用運(yùn)算符去引用函數(shù)返回的值。 $reval= 如果expr1的值為True,則此表達(dá)式的值為expr2;如果expr1的值為False,則此表達(dá)式的值為expr3。,; $a=7; echo $b.; $b= ?,=60?及格:不及格); echo $result.; ?,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),29,5語法基礎(chǔ) PHP的流程控制,ifelse循環(huán) 只用到了if作條件判斷,格式:if(expr) statement; 除了if之外,加上了else分支,格式:if(expr) statement; else statement; 遞歸的ifelseife

23、lse循環(huán),通常用在多種決策判斷中。,$val2) echo val1大于val2.; elseif($val1=$val2) echo val1等于val2.; else echo val1小于val2; ?,$val2) echo val1=.$val1. ; echo val2= .$val2.; echo val1大于val2.; ?,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),30,5語法基礎(chǔ) PHP的流程控制,while循環(huán)用來在指定的條件內(nèi),不斷地重復(fù)步驟。格式:while(expr) statement; 如果程序只有一行,則可以省略大括號(hào)“”。多行情況也可以不用大括號(hào),單末尾要使用e

24、ndwhile結(jié)束。 dowhile循環(huán)和while循環(huán)非常相似。區(qū)別在于表達(dá)式的值是在每次循環(huán)結(jié)束時(shí)檢查而不是開始時(shí)。格式為:do statement while(expr),; $i=1; while($i,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),31,5語法基礎(chǔ) PHP的流程控制,for循環(huán)是PHP中最復(fù)雜的循環(huán)結(jié)構(gòu)。格式為:for(expr1;expr2;expr3) statement; expr1在循環(huán)開始前無條件執(zhí)行一次。expr2在每次循環(huán)開始前求值,如果其值為True,則繼續(xù)循環(huán)執(zhí)行statement語句;如果其值為False,則終止循環(huán)。expr3在每次循環(huán)之后被執(zhí)行。每個(gè)表達(dá)

25、式都可以為空。expr2為空意味著將無限循環(huán)下去,PHP認(rèn)為其值為True。,; for($i=1;$i+) if($i10) break; echo $i. ; echo ; $i=1; for(;) if($i10) break; echo $i+. ; echo ; for($i=1;$i,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),32,5語法基礎(chǔ) PHP的流程控制,switch循環(huán) switch語句可用于把同一個(gè)變量或表達(dá)式與很多不同的值比較,并根據(jù)其值來執(zhí)行不同的代碼的情況。格式為:switch(expr) case expr1: statement1; break; case expr2

26、: statement2; break; default: statement2; break; ,; $i=$_GETi; if($i=0) print i equals 0; elseif($i=1) print i equals 1; elseif($i=2) print i equals 2; echo ; print 下面用switch:; switch($i) case 0: print i equals 0; break; case 1: print i equals 1; break; case 2: print i equals 2; break; ? 請輸入i的值: ,第2

27、章 PHP的語法結(jié)構(gòu)和常用函數(shù),33,5語法基礎(chǔ) PHP的流程控制,foreach循環(huán)主要用于遍歷數(shù)組和對(duì)象。有時(shí)會(huì)明顯for語句。 foreach語句的第一種格式: foreach語句的第二種格式: foreach只能對(duì)數(shù)組和對(duì)象遍歷,不能根據(jù)條件表達(dá)式來處理循環(huán)。,$arr=array(); foreach($array as $item) echo $item; ,foreach($數(shù)組 as $變量1=變量2) ,PHP在線資源:; foreach($links as $link) echo$link; ?,80,english=73,math=45); foreach($stu as

28、 $subject=$score) echo 您的分?jǐn)?shù):$subject=$score; ?,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),34,5語法基礎(chǔ) PHP的流程控制,其他的流程控制 (1)break循環(huán) break負(fù)責(zé)結(jié)束當(dāng)前for、foreach、while、dowhile或者switch結(jié)構(gòu)的執(zhí)行。格式為:break n; 當(dāng)n為1時(shí),可省略; 當(dāng)n大于1時(shí),表示跳出n重循環(huán)。 n應(yīng)小于等于循環(huán)語句的個(gè)數(shù)。,n; $i=0; while(+$i) switch($i) case 4: print 當(dāng)前i的值為4.n; break; case 8: print 當(dāng)前i的值為8.n; brea

29、k 2; default; break; ?,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),35,5語法基礎(chǔ) PHP的流程控制,其他的流程控制 (1)continue循環(huán) 用來跳過本次循環(huán)中剩余的代碼并開始執(zhí)行下一次循環(huán)。格式為:continue n; 當(dāng)n為1時(shí),可省略; 當(dāng)n大于1時(shí),表示跳出n重循環(huán)的當(dāng)次循環(huán),并執(zhí)行下一次循環(huán)。 n應(yīng)小于等于循環(huán)語句的個(gè)數(shù)。,n; while(1) echo ?,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),36,的數(shù)據(jù)存儲(chǔ)處理,壓縮文件的打開與關(guān)閉 在所有的壓縮文件操作中,文件的打開與關(guān)閉是最基本的,所用到的函數(shù)有g(shù)zopen和gzclose。 resource gzop

30、en(string filename,string mode,int use_include_path):打開壓縮文件。參數(shù)filename為文件名,參數(shù)mode為打開文件的模式。如果打開失敗則返回FALSE,成功則返回文件標(biāo)識(shí)。 boolean gzclose(resource zp):關(guān)閉壓縮文件。參數(shù)zp為文件標(biāo)識(shí),如果關(guān)閉失敗則返回FALSE。 gzopen和gzclose函數(shù)是組合使用的,即有打開必須有關(guān)閉,否則會(huì)造成大量的資源浪費(fèi)。,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),37,的數(shù)據(jù)存儲(chǔ)處理,gzopen()和gzclose(); echo ; $id=gzopen(test.tar

31、.gz,r); if($id) echo open zip file success!; gzclose($id); ?,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),38,的數(shù)據(jù)存儲(chǔ)處理,壓縮文件的基本讀寫(例2-37) 所用到的函數(shù)有g(shù)zwrite、gzgetc、gzgets、gzgetss、gzread和gzpassthru int gzwrite(resource zp,string str,int length):把str的前l(fā)ength個(gè)或全部字符壓縮后寫入文件。第三個(gè)參數(shù)是可選的。返回輸入到文件中的字符個(gè)數(shù)。 boolean gzputs(resource zp,string str,in

32、t length):把str的前l(fā)ength個(gè)或全部字符壓縮后寫入文件。用法與gzwrite函數(shù)完全一樣。 string gzgets(resource zp,int length):讀壓縮文件中解壓縮后的字符串。參數(shù)length指定讀取字符串的長度,但讀出的字符串長度為length-1。,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),39,的數(shù)據(jù)存儲(chǔ)處理,string gzgetss(resource zp,int length,string allowable_tag):讀壓縮文件中解壓縮后的字符串,并刪掉HTML/PHP的指令。比如用gzgetss($id,10)函數(shù)來讀取字符串the secon

33、d line.n,將只返回th,因此length是指過濾前的長度。 string gzgetc(resource zp):讀壓縮文件中解壓縮后的一個(gè)字符。若已到文件末尾,gzgetc函數(shù)沒有可讀的數(shù)據(jù)時(shí),返回FALSE標(biāo)識(shí)。 string gzread(resource zp,int length):從壓縮文件讀出解壓縮后指定長度的字符串。讀取的是整個(gè)文件,并且不會(huì)刪除HTML/PHP的指令。 int gzpassthru(resource zp):解壓縮指針后的全部數(shù)據(jù)并在標(biāo)準(zhǔn)輸出中顯示出來。返回從文件中讀取出的字符個(gè)數(shù)。在執(zhí)行g(shù)zpassthru函數(shù)之后,文件自動(dòng)關(guān)閉,因而不需要再用gzc

34、lose關(guān)閉文件,否則會(huì)出現(xiàn)警告信息。,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),40,; $id=gzopen(test.gz,w); gzwrite($id,Hello world!n); gzwrite($id,123456789n,5); gzclose($id); $id=gzopen(test.gz,r); echo gzgetc($id).; echo gzgets($id,256).; echo gzgets($id,4).; gzclose($id);$id=gzopen(test.gz,w); gzputs($id,this is a test.n); gzputs($id,th

35、e second line.n); gzclose($id);$id=gzopen(test.gz,r); echo gzgetss($id,256).; echo gzgetss($id,10).; gzpassthru($id); echo ; $id=gzopen(test.gz,r); echo gzread($id,256).; gzclose($id); ?,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),41,的數(shù)據(jù)存儲(chǔ)處理,壓縮文件的擴(kuò)展讀取 int readgzfile(string filename,int use_include _path):該函數(shù)負(fù)責(zé)讀取壓縮文件解壓縮后的數(shù)據(jù)并輸

36、出到標(biāo)準(zhǔn)設(shè)備。注意,在瀏覽器中的輸出是經(jīng)過HTML解釋的。 array gzfile(string filename,int use_include _path):該函數(shù)負(fù)責(zé)讀取壓縮文件解壓縮后的數(shù)據(jù)到數(shù)組中。在瀏覽器中的輸出也是經(jīng)過HTML解釋的。其中,$array0、$array1、$array2分別表示文件中文本的第1行、第2行、第3行,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),42,readgzfile(); $id=gzopen(test1.gz,w); gzputs($id,諸葛亮); gzclose($id); readgzfile(test1.gz); echo ; $id=gzop

37、en(test1.gz,w); gzputs($id,elva is my girl friend.n); gzputs($id,And you?n); gzclose($id); $temp=gzfile(test1.gz); echo $temp0.; echo$temp1.; ?,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),43,的數(shù)據(jù)存儲(chǔ)處理,壓縮文件的文件指針 int gzeof(resource zp):判斷是否至壓縮文件的末尾。如果已經(jīng)在文件尾則返回True標(biāo)識(shí)。eof為end of file的縮寫。 boolean gzrewind(resource zp):重新設(shè)定文件指針至文件頭。

38、參數(shù)zp為文件標(biāo)識(shí)。 int gzseek(resource zp,int offset):該函數(shù)負(fù)責(zé)設(shè)置壓縮文件指針至指定處。offset是從文件頭而不是當(dāng)前文件指針?biāo)闫鸬摹?int gztell(resource zp):該函數(shù)負(fù)責(zé)獲取壓縮文件的指針。參數(shù)zp為文件標(biāo)識(shí)。,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),44,; $id=gzopen(test2.gz,w); gzputs($id,PHP is something very good,haha.); gzclose($id); $id=gzopen(test2.gz,r); if(!gzeof($id) echo還沒有到文件結(jié)尾!;

39、else echo; $temp=gzgets($id,256); if(!gzeof($id) echo還沒有到文件結(jié)尾!; else echo; gzrewind($id); echo gzgets($id,6).; gzseek($id,10); echo gzgets($id,5).; echo gztell($id).; gzclose($id); ?,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),45,的字符串處理,字符串的分割與截取 string strstr(string haystack,string needle):返回字符串中從某字符開始處至結(jié)束的字符串。 string chunk

40、_split(string body,int chunklen,int length):將字符串分成小段供其它函數(shù)使用。例如,base64_encode。內(nèi)定是參數(shù) chunklen(76 個(gè)字符)每隔76個(gè)字符插入end (“rn”)。返回新字符串而不改動(dòng)原字符串。 將字符串$data格式化成MIMEBASE64格式,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),46,的字符串處理,字符串的分割與截取 string substr(string str,int start,int length):從str中取出第start個(gè)字符開始length長度的子串。注意:字符串str中的字符正數(shù)從0開始,負(fù)數(shù)從-

41、1開始。 string strtok(string str,string token):根據(jù)token中的字符將str分隔開。 array split(string pattern,string str,int limit):該函數(shù)返回一個(gè)字符串?dāng)?shù)組,每個(gè)單元為str經(jīng)區(qū)分大小寫的正則表達(dá)式pattern作為邊界分割出的子串。如果設(shè)定了limit,則返回的數(shù)組最多包含limit個(gè)單元,而最后一個(gè)單元包含str中剩余的所有部分。如果出錯(cuò),則split函數(shù)返回FALSE。,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),47,strstr函數(shù)示例; $email=; echo strstr($email,).

42、;echo substr函數(shù)示例; $str=abcdef; echo substr($str,1);echo ; echo substr($str,1,3);echo ; echo substr($str,0,4);echo ; echo substr($str,0,8);echo ; echo substr($str,-4,5);echo ; echo strtok函數(shù)示例; $string=PHP的語法t結(jié)構(gòu)和n常用函數(shù)。; $tok=strtok($string,nt); while($tok!=false) echo 分隔結(jié)果=$tok;$tok=strtok(nt); echo s

43、plit函數(shù)示例; $date=11/30/1978; list($month,$day,$year)=split(/,$date); echo $year.年-.$month.月-.$day.日 n; ?,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),48,的字符串處理,字符串的加密 PHP加密函數(shù)主要有md5和sha1,此外可以使用crc32函數(shù)來校驗(yàn)數(shù)據(jù)傳輸?shù)耐暾浴?string md5(string str,bool raw_output):計(jì)算字符串的MD5哈希值。 string sha1(string str,bool raw_output):另外一種哈希值計(jì)算方法。 int crc32(

44、string str):計(jì)算一個(gè)字符串的crc32多項(xiàng)式,通常用來檢查傳輸?shù)臄?shù)據(jù)是否完整。,使用md5()獲取文件哈希值示例; $str=apple; echo apple經(jīng)過MD5加密后=.md5($str).; echo apple經(jīng)過sha1加密后=.sha1($str).; $checksum=crc32(apple); printf(apple經(jīng)過crc32校驗(yàn)后=%un,$checksum); ?,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),49,的字符串處理,字符串比較 int strcmp(string str1,string str2):二進(jìn)制完全比較字符串,如果str1小于str2

45、,返回負(fù)數(shù),否則返回正數(shù),如果兩個(gè)字符串相等則返回0。 int subcasecmp(string str1,string str2):不區(qū)分大小寫比較兩個(gè)字符串。,strcmp示例; if(strcmp(cheng,wei) echo string cheng and wei is not equals.; echo ; echo strcasecmp示例; $str1=Hello; $str2=hello; if(strcasecmp($str1,$str2)=0) echo 在不區(qū)分大小寫的情況下,$str1和$str2是相等的!; ?,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),50,的字符串

46、處理,字符串的轉(zhuǎn)義 string addslashes(string str):使用反斜線引用字符串,該字符串為了數(shù)據(jù)庫查詢語句等的需要在某些字符前加上反斜線。這些字符是單引號(hào)、雙引號(hào)、反斜線與NULL字符。 string stripslashes(string str):去掉反斜線字符。 string htmlspecialchars(string str,int quote_style,string charset):將特殊字符轉(zhuǎn)化成HTML格式。 string htmlentities(string str,int quote_style, string charset):將所有的字符轉(zhuǎn)

47、化成HTML格式。 string quotemeta(string str):加入引用符號(hào)。,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),51,的字符串處理,字符串的格式化 string number_format(float number,int decimals, string dec_point,string thousands_sep):該函數(shù)用來將浮點(diǎn)類型的參數(shù)number格式化。若沒有參數(shù)decimals,則返回的字符串只取整數(shù)部分,加了此參數(shù)則按照該參數(shù)指定的小數(shù)點(diǎn)位數(shù)返回。參數(shù)dec_point表示小數(shù)點(diǎn)的表示方法,默認(rèn)值是“.”,若需要轉(zhuǎn)換成其他的小數(shù)點(diǎn)就可以修改這個(gè)參數(shù)的格式。參數(shù)

48、thousands_sep為整數(shù)部分每3位的分隔符號(hào),默認(rèn)值是逗號(hào)“,”。 string sprintf(string format,mixed args,mixed):該函數(shù)用來將字符串格式化成指定的形式。參數(shù)format是要轉(zhuǎn)換的格式,以百分比符號(hào)%開始到轉(zhuǎn)換字符為止。 整個(gè)轉(zhuǎn)換的格式包括以下內(nèi)容 (1)填空字元。0表示空格,空格是默認(rèn)值。 (2)對(duì)齊方式。默認(rèn)值為右對(duì)齊,負(fù)號(hào)表示左對(duì)齊。 (3)欄位寬度。為最小寬度。 (4)精確度。指在小數(shù)點(diǎn)后的浮點(diǎn)數(shù)位數(shù)。,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),52,使用number_format()格式化示例; $number=1234.56; $en

49、glish_format_number=number_format($number); echo $english_format_number.; $france_format_number=number_format($number,2, ); echo $france_format_number.; $number=1234.5678; $english_format_number=number_format($number,2,.,); echo $english_format_number.; echo 使用sprintf()格式化示例; $money1=58.75; $money2=

50、64.35; $money=$money1+$money2; echo $money.; $var1=sprintf(%01.2f,$money); echo $var1; ?,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),53,的字符串處理,echo語句可以打印變量和內(nèi)容,其他可以是系統(tǒng)變量,也可以是HTML代碼,也可以是一個(gè)PHP表達(dá)式。,; echo $_POSTUserName.; $str1=FreeBSD ; $str2=PHP; echo $str1.and .$str2.is good partners.; $arr=array(a,b,c); print_r($arr);print_r

51、($a); ? 獲取信息: ,第2章 PHP的語法結(jié)構(gòu)和常用函數(shù),54,的字符串處理,print_r($array/$var) 它既可以打印數(shù)組內(nèi)容,也可以打印普通的變量。 boolean printf(string format,mixed args,mixed):該函數(shù)用于格式化字符串,主要用于字符串中以%開頭的格式字符串替換。, 43.2); printf(%d bottles of beer on %s, 100, the wall); printf(%15s, some text); ?,php,8=2.9,10=2.00); echo $arrbook; echo ; echo $arr8.; printf($%01.2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論