第8章 PHP的常用函數(shù)庫(kù).ppt_第1頁(yè)
第8章 PHP的常用函數(shù)庫(kù).ppt_第2頁(yè)
第8章 PHP的常用函數(shù)庫(kù).ppt_第3頁(yè)
第8章 PHP的常用函數(shù)庫(kù).ppt_第4頁(yè)
第8章 PHP的常用函數(shù)庫(kù).ppt_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第8章 PHP的常用函數(shù)庫(kù),本章將為讀者介紹PHP中的常用函數(shù)。PHP編程在很大程序上就是對(duì)函數(shù)的運(yùn)用,這點(diǎn)和C語(yǔ)言類似。因?yàn)镻HP提供了豐富的函數(shù)支持,才使得其功能非常強(qiáng)大。而對(duì)PHP中常用函數(shù)的使用熟練與否,直接關(guān)系到程序開發(fā)的速度。本章將要介紹的常用函數(shù)類型有: 字符串處理函數(shù)。 數(shù)組處理函數(shù)。 數(shù)學(xué)運(yùn)算函數(shù)。 變量處理函數(shù)。 日期與時(shí)間函數(shù)。 目錄與文件函數(shù)。,8.1 字符串處理函數(shù),在程序編寫過(guò)程中,讀者經(jīng)常會(huì)用到字符串處理函數(shù),比如字符的查找、替換、格式化、分割等。PHP提供了很多處理字符串的函數(shù),為編寫程序帶來(lái)了極大的方便。,8.1.1 拆分字符串方法,拆分字符串方法是把字符串拆

2、分成幾個(gè)子字符串,并返回一個(gè)子字符串。拆分字符串方法的格式如下所示。 String substr(string str, int start, intlength) 此函數(shù)返回字符串str中從位置srart開始,長(zhǎng)度為length的子字符串,其中參數(shù)start和length不但可以取正數(shù),還可以取負(fù)數(shù)。下面通過(guò)實(shí)例來(lái)介紹拆分字符串函數(shù)的方法,程序如代碼8-1所示。,8.1.2 特定字符的查找,PHP中提供了功能強(qiáng)大的字符串查找和替換函數(shù),可以方便地進(jìn)行字符串的查找和替換操作。這兩個(gè)函數(shù)的作用是在字符串一中查找字符串二第一次出現(xiàn)的地方,如果找到,將返回字符串一中從字符串二開始剩余部分。字符串二也

3、可以是一個(gè)整數(shù),函數(shù)會(huì)先將此整數(shù)轉(zhuǎn)換為ASCII碼,然后進(jìn)行查找。其不同點(diǎn)在于查找函數(shù)不區(qū)分大小寫,而替換函數(shù)是區(qū)分大小寫的。但是這兩個(gè)查找函數(shù)的功能相同。查找函數(shù)的格式分別如下所示。 string stristr(string str1,string str2) string strstr(string str1,string str2) 其中“stristr”和“strstr”是查找函數(shù), “str1”和“str2”表示字符串一和字符串二。,8.1.3 特定字符的替換,前面介紹了查找函數(shù),接下來(lái)介紹替換函數(shù)。該函數(shù)的作用是將字符串“str”某些子字符串替換為另一個(gè)子字符串,然后將新的字符串

4、返回,如果指定的子字符串在字符串中不存在,此函數(shù)將返回空值。函數(shù)的格式如下所示。 string str_replace(string substr,string newstr,string str) 在此格式中,“str_replace”為字符串替換函數(shù),其中“substr”為指定的子字符串,“newstr”為要替換的字符串,“str”為字符串。下面通過(guò)實(shí)例來(lái)介紹PHP的字符串替換函數(shù)的使用。實(shí)例代碼如代碼8-5所示。,8.1.4 比較字符串,字符串比較函數(shù)用于對(duì)字符串的大小進(jìn)行比較以及字符串相似度比較等。如果“str1”“str2”則返回值為“1”,如果字符串“str1”“str2”則返回值

5、為“-1”,如果兩個(gè)字符串相等,則返回值就會(huì)是“0”,實(shí)現(xiàn)這樣功能的函數(shù)是“strcasecmp()”“strcmp()”。這兩個(gè)函數(shù)的區(qū)別在于“strcasecmp()”函數(shù)是不區(qū)分大小寫的,而“strcmp()” 函數(shù)是區(qū)分大小寫的。其格式如下所示。 int strcasecmp(string str1,string str2) int strcmp(string str1,string str2) 其中,“strcasecmp()”和“strcmp()”是字符串的一種比較函數(shù),“strcasecmp()” 函數(shù)不區(qū)分大小寫,而“strcmp()”函數(shù)是區(qū)分大小寫的。下面就通過(guò)具體實(shí)例來(lái)介

6、紹字符串比較函數(shù)的使用。,8.1.5 字符串類型轉(zhuǎn)換,字符串類型的轉(zhuǎn)換函數(shù)用于將一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型。下面給出3種類型轉(zhuǎn)換函數(shù)和一個(gè)通用轉(zhuǎn)換函數(shù),類型轉(zhuǎn)換函數(shù)的格式如下所示。 double doubleval(mixed var) int intval(mixed var,intbase) string strval(mixed var) int settype(mixed var,string type) 其中,“mixed var”代表簡(jiǎn)單數(shù)據(jù)類型,不包括數(shù)組和對(duì)象。函數(shù)“intval()”中的“intbase”是可選參數(shù),表示以何種進(jìn)位制進(jìn)行轉(zhuǎn)換為整數(shù)?!癲oubleval(

7、)”函數(shù)會(huì)將變量強(qiáng)制轉(zhuǎn)換為浮點(diǎn)型,“intval()”函數(shù)將變量強(qiáng)制轉(zhuǎn)換為整型,“strval()”函數(shù)將變量強(qiáng)制轉(zhuǎn)換為字符串。在通用的類型轉(zhuǎn)換函數(shù)中,“string type”只能是以下值:“integer”“double”“string”“array”“object”。,8.2 數(shù)組處理函數(shù),數(shù)組就是一系列的數(shù)值或字符串作為一單元來(lái)處理。它由兩部分組成:數(shù)組名和下標(biāo)。數(shù)組名是唯一的,下標(biāo)表示了數(shù)組中數(shù)據(jù)的位置,其可以是數(shù)字也可以是字符。這個(gè)結(jié)構(gòu)可以作為變量。讀者可以賦值給數(shù)組,也可以把數(shù)組的值傳給函數(shù)。在使用數(shù)組前不需要聲明,與變量一樣,數(shù)組的元素是動(dòng)態(tài)生成的。,8.2.1 建立數(shù)組的方法

8、,PHP中數(shù)組可以是一維或者是多維數(shù)組,其成員可以是整型、布爾型、浮點(diǎn)型和字符串。PHP也支持以數(shù)字為下標(biāo)的數(shù)組和以字符串為下標(biāo)的數(shù)組,二者沒(méi)有區(qū)別。在PHP中可以“l(fā)ist()”函數(shù)或“array()” 函數(shù)來(lái)創(chuàng)建數(shù)組,也可以直接給函數(shù)進(jìn)行賦值。下面就使用函數(shù)“arrat()”來(lái)創(chuàng)建數(shù)組,代碼如代碼8-9所示。,8.2.2 數(shù)組的創(chuàng)建與賦值函數(shù),數(shù)組的創(chuàng)建與賦值函數(shù)有“array range()”和“void list()”兩個(gè)函數(shù),其作用是數(shù)組的創(chuàng)建和賦值,用于對(duì)一個(gè)數(shù)組進(jìn)行初始化。函數(shù)“array range()”的作用是給一組變量一次性賦值。函數(shù)“void list()”的作用是創(chuàng)建一

9、個(gè)包含連續(xù)的整數(shù)的數(shù)組,返回的數(shù)組下標(biāo)從“0”開始。函數(shù)的格式如下所示。 void list() array range(int low,int high) 其中,“l(fā)ow”表示數(shù)組的賦值的開始值?!癶igh”表示數(shù)組的賦值的結(jié)束值。,8.2.3 對(duì)數(shù)組下標(biāo)的操作函數(shù),對(duì)數(shù)組下標(biāo)的操作是通過(guò)數(shù)組的屬性與遍歷函數(shù)來(lái)實(shí)現(xiàn)的。數(shù)組的屬性與遍歷函數(shù)主要用于與數(shù)組下標(biāo)相關(guān)的操作。,8.2.4 使用排序函數(shù)實(shí)現(xiàn)數(shù)組元素的排序,數(shù)組排序函數(shù)用于一個(gè)數(shù)組中的所有元素進(jìn)行排序,可以以下標(biāo)為索引,也可以以值為索引,排序可以是順序,也可以是逆序。,8.2.5 使用動(dòng)態(tài)操作函數(shù)實(shí)現(xiàn)數(shù)組動(dòng)態(tài)擴(kuò)充,數(shù)組動(dòng)態(tài)操作函數(shù)用于數(shù)

10、組的動(dòng)態(tài)擴(kuò)充,利用這些函數(shù)可以完成棧隊(duì)列的功能。實(shí)現(xiàn)數(shù)組動(dòng)態(tài)擴(kuò)充功能的函數(shù)有:“array_push()”函數(shù)的作用是將一個(gè)或多個(gè)元素壓入數(shù)組未尾,并將數(shù)組擴(kuò)充,函數(shù)返回?cái)U(kuò)充后的數(shù)組中元素的個(gè)數(shù)。“array_pop()” 函數(shù)的作用是從數(shù)組的末尾彈出一個(gè)元素返回,并將數(shù)組長(zhǎng)度減“1”。“array_unshift()” 函數(shù)的作用是將一個(gè)或多個(gè)元素壓入數(shù)組頭部,將數(shù)組擴(kuò)充,函數(shù)返回?cái)U(kuò)充后的數(shù)組中元素的個(gè)數(shù)?!癮rray_shift()”函數(shù)的作用是從數(shù)組頭部彈出一個(gè)元素返回,并將數(shù)組的長(zhǎng)度減“1”。 函數(shù)的格式如下所示。 int array_push(array array,mixed va

11、r,) mixed array_pop(array array) int array_unshift(array array,mixed var,) mixed array_shift(array array),8.3 數(shù)學(xué)運(yùn)算函數(shù),PHP提供了大量數(shù)學(xué)運(yùn)算函數(shù)來(lái)實(shí)現(xiàn)長(zhǎng)整型和浮點(diǎn)型的各種運(yùn)算,其返回結(jié)果也只限于這兩種數(shù)據(jù)類型。如果實(shí)現(xiàn)高精度的數(shù)學(xué)運(yùn)算,就要使用BC高精度運(yùn)算函數(shù)庫(kù)了。這里介紹常用的數(shù)學(xué)運(yùn)算函數(shù),并沒(méi)有涉及到BC函數(shù)庫(kù)。,8.3.1 常用數(shù)學(xué)運(yùn)算函數(shù),PHP中的常用數(shù)學(xué)運(yùn)算函數(shù)有算術(shù)、冪指對(duì)函數(shù)、進(jìn)位制函數(shù)、三角、反三角函數(shù),下面介紹這些函數(shù)的使用語(yǔ)法。,8.3.2 隨機(jī)數(shù)的設(shè)定

12、與獲取,隨機(jī)數(shù)的設(shè)定與獲取是用“srand()”函數(shù)給隨機(jī)數(shù)產(chǎn)生器設(shè)置當(dāng)前的時(shí)間,使用“rand()”函數(shù)用于在最小值和最大值間產(chǎn)生一個(gè)隨機(jī)數(shù),使用“getrandmax()”函數(shù)返回“rand()”函數(shù)所能產(chǎn)生的最大隨機(jī)數(shù)。函數(shù)的格式如下所示。 void srand(int seed) int rand(int min,int max) int getrandmax() 在此程序中,參數(shù)“seed”表示當(dāng)前的時(shí)間,“min”和“max”是設(shè)置隨機(jī)數(shù)的最小和最大值。下面通過(guò)實(shí)例來(lái)介紹隨機(jī)函數(shù)。,8.4 日期與時(shí)間函數(shù),PHP提供了時(shí)間和日期函數(shù),時(shí)間和日期函數(shù)就是當(dāng)前時(shí)間和日期的格式化輸出。通

13、常時(shí)間和日期函數(shù)是把系統(tǒng)的時(shí)間和日期輸出到網(wǎng)頁(yè)中。,8.4.1 時(shí)間、日期的輸出格式,時(shí)間和日期的獲取是通過(guò)“data()”函數(shù)和“gmdata()”函數(shù)來(lái)實(shí)現(xiàn)的。這兩個(gè)函數(shù)的作用是將當(dāng)前時(shí)間和日期的格式化輸出。其格式如下所示。 string data(string format,int timestamp) string gmdata(string format,int timestamp) 其中,參數(shù)“timestamp”的中文名可翻譯為“時(shí)戳”,通常表示從系統(tǒng)建立到當(dāng)前時(shí)間的時(shí)間長(zhǎng)度,一般以秒為單位。“data()”函數(shù)是輸出本地的日期和時(shí)間,如果不指定“timestamp”的值,則其值

14、為默認(rèn)為本地當(dāng)前的“timestamp”的值?!癵mdata()”函數(shù)是輸出格林尼治日期和時(shí)間,“timestamp”為必需參數(shù)。“format”表示指定日期和時(shí)間輸出的格式?!癴ormat”的輸出格式如表8.1所示。,8.4.2 檢驗(yàn)輸入的日期是否合法,PHP還提供了用于檢驗(yàn)輸入的日期是否合法的函數(shù)(checkdate()),其格式如下所示。 int checkdate(int month,int day,int year) 其中,參數(shù)“month”表示月,其合法范圍是112之間。參數(shù)“day”表示日,其合法范圍是由參數(shù)月來(lái)決定的,系統(tǒng)會(huì)自動(dòng)考慮到閏年。參數(shù)“year”表示的是年,合法的使用

15、范圍是032767。下面通過(guò)一個(gè)實(shí)例來(lái)介紹PHP中的檢驗(yàn)日期函數(shù)的使用。,8.5 目錄與文件函數(shù),PHP中提供了目錄與文件的操作函數(shù)。目錄操作函數(shù)是將目錄讀取、復(fù)位、關(guān)閉等操作。而文件函數(shù)是對(duì)文件進(jìn)行打開、讀取、寫入、關(guān)閉等操作。對(duì)于文件函數(shù)來(lái)說(shuō),由于在網(wǎng)絡(luò)編程中要用到兩種類型的文件操作,一種是普通的文件操作,另一種是數(shù)據(jù)庫(kù)文件操作。這里要講述的是普通文件操作函數(shù),而對(duì)于數(shù)據(jù)庫(kù)文件的操作將在下面的章節(jié)進(jìn)行介紹。,8.5.1 目錄操作函數(shù),目錄函數(shù)用于實(shí)現(xiàn)目錄的操作,包括目錄的讀取、復(fù)位、關(guān)閉等。下面對(duì)目錄操作函數(shù)進(jìn)行介紹。,8.5.2 文件打開與關(guān)閉操作,文件打開與關(guān)閉函數(shù)是用于創(chuàng)建和銷毀與文

16、件的鏈接。在進(jìn)行文件操作前一般都要先打開文件,在文件操作完成后應(yīng)該關(guān)閉文件。文件的打開和關(guān)閉函數(shù)的格式如下所示。 int fopen(string filename,string mode,intuse_include_path) int fclose(int fp) 文件打開函數(shù)的功能是打開本地文件或一個(gè)由URL所指定的文件,并返回文件的指針,如果打開文件成功,返回值為“true”,否則返回值為“false”。參數(shù)“use_include_path”為可選參數(shù)。如果參數(shù)“filename”以“http:/”開頭就會(huì)找開一個(gè)與指定服務(wù)器的連接,并返回指向被請(qǐng)求文件的指針。由于此函數(shù)不處理HTT

17、P重定向,所以必須在目錄中包括斜杠。如果參數(shù)“filename”以“FTP:/”開頭就會(huì)打開一個(gè)與指定服務(wù)器的FTP連接,并返回指向被請(qǐng)求文件的指針,如果服務(wù)器不支持被動(dòng)模式的FTP,此操作不成功。通過(guò)FTP可以將文件以讀取或?qū)懭氲姆绞酱蜷_,但是不能以讀寫的方式打開。 除上面的情況以外,參數(shù)“filename”都會(huì)認(rèn)為是本地文件,函數(shù)將在本地文件系統(tǒng)中打開指定文件,并返回文件指針。參數(shù)“mode”表示打開文件的方式,可以是表8.3中的一個(gè)方式。,8.5.3 文件信息獲取函數(shù),PHP中提供的文件信息獲取函數(shù),其作用是獲取文件的保護(hù)模式、當(dāng)前文件的鏈接數(shù)、所有者ID、字節(jié)數(shù)、最后一次訪問(wèn)的時(shí)間、最

18、后一次修改時(shí)間等。獲取文狀態(tài)信息和符號(hào)鏈接狀態(tài)的函數(shù)格式如下所示。 array stat(string filename) array lstat(string filename) “stat()”函數(shù)的作用是獲取指定文件的狀態(tài)信息?!發(fā)stat()”函數(shù)的作用是獲取指定文件或符號(hào)鏈接的狀態(tài)信息。這兩個(gè)函數(shù)的用法相同,區(qū)別是如果參數(shù)“filename”是一個(gè)符號(hào)鏈接,此函數(shù)將會(huì)返回符號(hào)鏈接的狀態(tài),而不是符號(hào)鏈接所指向的文件的狀態(tài)。 文件信息獲取函數(shù)中判斷文件是否存在、是否可讀、是否可寫、是否可執(zhí)行的函數(shù)格式如下所示。 int file_exists(string filename) bool

19、is_readable(string filename) bool is_writeable(string filename) bool is_executable(string filename),8.5.4 如何對(duì)文件內(nèi)容進(jìn)行讀和寫,文件讀寫函數(shù)是文件夾類函數(shù)中最重要的一部分,PHP中的文件讀寫函數(shù)可以完成操作系統(tǒng)對(duì)文件所能完成的絕大部分功能。,8.6 PHP實(shí)踐無(wú)數(shù)據(jù)庫(kù)留言板,本節(jié)要設(shè)計(jì)一個(gè)留言板,是一個(gè)沒(méi)有數(shù)據(jù)庫(kù)的留言板。用戶可以在留言板上輸入用戶信息和留言內(nèi)容。并可以即時(shí)查看。對(duì)于處理少量數(shù)據(jù)的留言板簡(jiǎn)單易行,不使用數(shù)據(jù)庫(kù),讀取硬盤就可以。要實(shí)現(xiàn)一個(gè)留言板,首先要規(guī)劃好功能模塊。一個(gè)簡(jiǎn)單的留言板至少包括以下兩個(gè)文件。 留言板的處理腳本:讀取留言文件,格式顯示內(nèi)容、寫入模塊、提供用戶輸入留言內(nèi)容的表單。 留言內(nèi)容存儲(chǔ)文件:留言人姓名、留言的時(shí)間、E-mail地址、留言內(nèi)容。 規(guī)劃流程圖如圖8.22所示。,8.6.1 提交頁(yè)面設(shè)計(jì),提交頁(yè)面就是一個(gè)信息提交的頁(yè)面。需要用戶輸入用戶名、E-mail地址和留言內(nèi)容。信息輸入完成后,單擊“提交”按鈕,把輸入的信息提交給處理頁(yè)面。提交頁(yè)面的代碼如代碼8-23所示。,8.6.2 對(duì)提

溫馨提示

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

評(píng)論

0/150

提交評(píng)論