PHP常用功能模塊.ppt
《PHP常用功能模塊.ppt》由會員分享,可在線閱讀,更多相關《PHP常用功能模塊.ppt(92頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第5章PHP常用功能模塊 5 1目錄與文件操作 5 2圖形處理 5 3日期和時間 5 1目錄與文件操作 5 1 1目錄操作1 創(chuàng)建和刪除目錄使用mkdir 函數(shù)可以根據(jù)提供的目錄名或目錄的全路徑 創(chuàng)建新的目錄 如果創(chuàng)建成功則返回TRUE 否則返回FALSE 例如 使用rmdir 函數(shù)可以刪除一個空目錄 但是必須具有相應的權限 如果目錄不為空 必須先刪除目錄中的文件才能刪除目錄 例如 5 1 1目錄操作 2 獲取和更改當前工作目錄當前工作目錄是指正在運行的文件所處的目錄 使用getcwd 函數(shù)可以取得當前的工作目錄 該函數(shù)沒有參數(shù) 成功則返回當前的工作目錄 失敗則返回FALSE 例如 使用chdir 函數(shù)可以設置當前的工作目錄 該函數(shù)的參數(shù)是新的當前目錄 例如 當前工作目錄為 C wamp www Practice mkdir good 在Apache文件根目錄中建立good目錄 chdir good 設置good目錄為當前工作目錄echogetcwd 輸出 C wamp www good 5 1 1目錄操作 3 打開和關閉目錄句柄目錄的訪問是通過句柄實現(xiàn)的 使用opendir 函數(shù)可以打開一個目錄句柄 該函數(shù)的參數(shù)是打開的目錄路徑 打開成功則返回TRUE 失敗則返回FALSE 打開句柄后其他函數(shù)就可以調用該句柄 為了節(jié)省服務器資源 使用完一個已經(jīng)打開的目錄句柄后 應該使用colsedir 函數(shù)關閉這個句柄 例如 5 1 1目錄操作 4 讀取目錄內容例如 假設根目錄的good目錄下已經(jīng)創(chuàng)建了一個目錄html 其中保存了1 php 2 php 3 php這3個文件 要遍歷html目錄可以使用如下代碼 輸出文件名 closedir dir handle 關閉目錄句柄 elseecho 打開目錄失敗 5 1 1目錄操作 輸出結果如下 1 php2 php3 php 5 1 1目錄操作 5 獲取指定路徑的目錄和文件scandir 函數(shù)列出指定路徑中的目錄和文件 語法格式如下 arrayscandir string directory int sorting order resource context 函數(shù)運行成功則返回一個包含指定路徑下的所有目錄和文件名的數(shù)組 失敗則返回FALSE 例如 1 2 1 php 3 2 php 4 3 php print r file2 輸出 Array 0 3 php 1 2 php 2 1 php 3 4 5 1 2文件的打開與關閉 1 打開文件打開文件使用的是fopen 函數(shù) 語法格式如下 resourcefopen string filename string mode bool use include path resource context 1 filename參數(shù) fopen 函數(shù)將 filename參數(shù)指定的名字資源綁定到一個流上 2 mode參數(shù) mode參數(shù)指定了fopen 函數(shù)訪問文件的模式 取值見表5 1 3 use include path參數(shù) 如果需要在include path PHP的include路徑 在PHP的配置文件設置 中搜尋文件 可以將可選參數(shù) use include path的值設為1或TRUE 默認為FALSE 5 1 2文件的打開與關閉 4 context參數(shù) 可選的 context參數(shù)只有文件被遠程打開時 如通過HTTP打開 才使用 它是一個資源變量 其中保存著與fopen 函數(shù)具體的操作對象有關的一些數(shù)據(jù) 如果fopen 打開的是一個HTTP地址 那么這個變量記錄著HTTP請求的請求類型 HTTP版本及其他頭信息 如果打開的是FTP地址 記錄的可能是FTP的被動 主動模式 例如 5 1 2文件的打開與關閉 2 關閉文件文件處理完畢后 需要使用fclose 函數(shù)關閉文件 語法格式如下 boolfclose resource handle 參數(shù) handle為要打開的文件指針 文件指針必須有效 如果關閉成功則返回TRUE 否則返回FALSE 例如 5 1 3文件的寫入 例如 下面的代碼將在D盤data目錄下新建一個名為index txt的文件 data目錄存在 1 fwrite 函數(shù) 文件打開后 向文件中寫入內容可以使用fwrite 函數(shù) 語法格式如下 intfwrite resource handle string string int length 5 1 3文件的寫入 如果字符串 string中字節(jié)數(shù)小于 length 則寫入整個字符串后就停止寫入 如果寫入操作成功 fwrite 函數(shù)將返回寫入的字節(jié)數(shù) 出現(xiàn)錯誤時返回FALSE 例如 echo 寫入的字節(jié)數(shù)為 num 個 成功寫入的字符個數(shù)為14個fclose handle 關閉文件 elseecho 文件寫入失敗 5 1 3文件的寫入 2 file put contents 函數(shù) PHP5還引入了file put contents 函數(shù) 這個函數(shù)的功能與依次調用fopen fwrite 及fclose 函數(shù)的功能一樣 語法格式如下 intfile put contents string filename string data int flags resource context 寫入成功后函數(shù)返回寫入的字節(jié)數(shù) 否則返回FALSE 例如 5 1 3文件的寫入 3 fputcsv 函數(shù) CSV是一種比較常用的文件格式 一般以 csv作為擴展名 CSV格式把文件的一行看做是一條記錄 記錄里的字段使用逗號分隔 在PHP中使用fputcsv 函數(shù)可以把指定的數(shù)組格式化為符合CSV文件格式的內容 并寫入文件指針指向的當前行 語法格式如下 intfputcsv resource handle array fields string delimiter string enclosure 說明 參數(shù) handle是要寫入的文件句柄 參數(shù) fields是要格式化的數(shù)組 可選的 delimiter參數(shù)用于設定字段分界符 只允許一個字符 默認為逗號 可選的 enclosure參數(shù)設定字段環(huán)繞符 只允許一個字符 默認為雙引號 例如 5 1 4文件的讀取 1 讀取任意長度fread 函數(shù)可以用于讀取文件的內容 語法格式如下 stringfread resource handle int length 說明 參數(shù) handle是已經(jīng)打開的文件指針 length是指定讀取的最大字節(jié)數(shù) length的最大取值為8192 如果讀完 length個字節(jié)數(shù)之前遇到文件結尾標志 EOF 則返回所讀取的字符 并停止讀取操作 如果讀取成功則返回所讀取的字符串 如果出錯返回FALSE 例如 5 1 4文件的讀取 程序運行結果顯示一個網(wǎng)頁 如圖5 1所示 5 1 4文件的讀取 注意 在讀取文件后顯示文件內容時 文本中可能含有無法直接顯示的字符 如HTML標記 這時需要使用htmlspecialchars 函數(shù)將HTML標記轉化為實體才能顯示文件中的字符 例如 html目錄下有一個1 php文件 文件內容為 如果讀取文件后直接顯示 則顯示不出其中字符 要顯示其中的內容可以使用以下代碼 轉化為實體并輸出fclose handle 5 1 4文件的讀取 2 讀取整個文件 1 file 函數(shù) file 函數(shù)用于將整個文件讀取到一個數(shù)組中 語法格式如下 arrayfile string filename int flags resource context 參數(shù) filename是讀取的文件名 從PHP5起 flags可以是以下一個或多個常量 FILE USE INCLUDE PATH 在include path中查找文件 FILE IGNORE NEW LINES 在數(shù)組每個元素的末尾不要添加換行符 FILE SKIP EMPTY LINES 跳過空行 參數(shù) context的意義與之前介紹的相同 這里不具體解釋 例如 輸出內容 這是文件1 5 1 4文件的讀取 2 readfile 函數(shù) readfile 函數(shù)用于輸出一個文件的內容到瀏覽器中 語法格式如下 intreadfile string filename bool use include path resource context 例如 讀取html目錄下的1 txt文件中的內容到瀏覽器中 最終輸出 這是文件19 5 1 4文件的讀取 3 fpassthru 函數(shù) fpassthru 函數(shù)可以將給定的文件指針從當前的位置讀取到EOF 并把結果寫到輸出緩沖區(qū) 要使用這個函數(shù) 必須先使用fopen 函數(shù)打開文件 然后將文件指針作為參數(shù)傳遞給fpassthru 函數(shù) fpassthru 函數(shù)把文件指針所指向的文件內容發(fā)送到標準輸出 如果操作成功返回讀取到的字節(jié)數(shù) 否則返回FALSE 例如 5 1 4文件的讀取 4 file get contents 函數(shù) file get contents 函數(shù)可以將整個或部分文件內容讀取到一個字符串中 功能與依次調用fopen fread 及fclose 函數(shù)的功能一樣 語法格式如下 stringfile get contents string filename bool use include path false resource context int offset int maxlen 說明 filename是要讀取的文件名 可選參數(shù) use include path用來觸發(fā)include path查找 參數(shù) context的意義與之前介紹的相同 這里不具體解釋 offset可以指定從文件頭開始的偏移量 函數(shù)可以返回從 offset所指定的位置開始長度為 maxlen的內容 如果失敗 函數(shù)將返回FALSE 例如 5 1 4文件的讀取 3 讀取一行數(shù)據(jù) 1 fgets 函數(shù) fgets 函數(shù)可以從文件中讀出一行文本 語法格式如下 stringfgets resource handle int length 說明 handle是已經(jīng)打開的文件句柄 可選參數(shù) length指定了返回的最大字節(jié)數(shù) 考慮到行結束符 最多可以返回length 1個字節(jié)的字符串 如果沒有指定 length 默認為1024個字節(jié) 例如 fclose handle 關閉文件 5 1 4文件的讀取 2 fgetss 函數(shù) fgetss 函數(shù)的作用與fgets 函數(shù)基本相同 也是從文件指針處讀取一行數(shù)據(jù) 不過fgetss 函數(shù)會嘗試從讀取的文本中去掉任何HTML和PHP標記 語法格式如下 stringfgetss resource handle int length string allowable tags 例如 假設html目錄下的1 txt第一行內容為 php 顯示內容時不顯示 php 的加黑效果可以使用以下代碼 5 1 4文件的讀取 3 fgetcsv 函數(shù) fgetcsv 函數(shù)可以讀取指定文件的當前行 使用CSV格式解析出字段 并返回一個包含這些字段的數(shù)組 語法格式如下 arrayfgetcsv resource handle int length string delimiter string enclosure string escape 5 1 4文件的讀取 說明 handle是打開的文件句柄 length指定獲取的字符的最大長度 可選的 delimiter參數(shù)用于設定字段分界符 只允許一個字符 默認為逗號 可選的 enclosure參數(shù)設定字段環(huán)繞符 只允許一個字符 默認為雙引號 可選的 escape設定轉義字符 只允許一個字符 默認是反斜杠 PHP5 3 0新增 例如 第 row 行 row for c 0 c 輸出數(shù)組內容 fclose handle 5 1 4文件的讀取 輸出結果如下 第1行 學號姓名專業(yè)名性別第2行 1王林計算機男第3行 2李霞通信工程女 5 1 4文件的讀取 4 讀取一個字符fgetc 函數(shù) fgetc 函數(shù)可以從文件指針處讀取一個字符 語法格式為 stringfgetc resource handle 該函數(shù)返回 handle指針指向的文件中的一個字符 遇到EOF則返回FALSE 例如 char 5 1 4文件的讀取 5 使用指定格式讀取文件fscanf 函數(shù) fscanf 函數(shù)可以讀取文件中的數(shù)據(jù) 并根據(jù)指定的格式進行格式化 并返回一個數(shù)組 語法格式如下 mixedfscanf resource handle string format mixed 格式字符串中的任何空白會與輸入流中的任何空白匹配 這意味著甚至格式字符串中的制表符 t 也會與輸入流中的一個空格字符匹配 例如 html目錄下的1 txt文件有以下幾行數(shù)據(jù) 課程號課程名學分101計算機基礎5102程序設計與語言4206離散數(shù)學4208數(shù)據(jù)結構4 5 1 4文件的讀取 要顯示這些數(shù)據(jù)可以使用以下代碼 輸出數(shù)據(jù) fclose handle 5 1 5文件的上傳與下載 1 文件上傳 FILES是一個二維數(shù)組 上傳后的文件信息可以使用以下形式獲取 FILES file name 客戶端上傳的原文件名 其中 file 是HTML表單中文件域控件的名稱 FILES file type 上傳文件的類型 需要瀏覽器提供該信息的支持 常用的值有 text plain 表示普通文本文件 image gif 表示GIF圖片 image pjpeg 表示JPEG圖片 application msword 表示word文件 text html 表示html格式的文件 application pdf 表示PDF格式文件 audio mpeg 表示mp3格式的音頻文件 application x zip compressed 表示ZIP格式的壓縮文件 application octet stream 表示二進制流文件 如EXE文件 RAR文件 視頻文件等 FILES file tmp name 文件被上傳后在服務端儲存的臨時文件名 FILES file size 已上傳文件的大小 單位為字節(jié) FILES file error 錯誤信息代碼 值為0表示沒有錯誤發(fā)生 文件上傳成功 值為1表示上傳的文件超過了php ini文件中upload max filesize選項限制的值 值為2表示上傳文件的大小超過了HTML表單中規(guī)定的最大值 值為3表示文件只有部分被上傳 值為4表示沒有文件被上傳 值為5表示上傳文件大小為0 5 1 5文件的上傳與下載 例5 1 將由HTML表單上傳的GIF圖片文件移動到html目錄下 新建EX5 1 php文件 輸入代碼 說明 運行程序后單擊文件域的 瀏覽 按鈕 選擇一張GIF格式的圖片后單擊 上傳文件 按鈕 運行結果如圖5 2所示 5 1 5文件的上傳與下載 2 文件下載header 函數(shù)的作用是向瀏覽器發(fā)送正確的HTTP報頭 報頭指定了網(wǎng)頁內容的類型 頁面的屬性等信息 header 函數(shù)的功能很多 這里只列出以下幾點 頁面跳轉 如果header 函數(shù)的參數(shù)為 Location xxx 頁面就會自動跳轉到 xxx 指向的URL地址 例如 header Location 跳轉到百度頁面header Location first php 跳轉到工作目錄的first php頁面 指定網(wǎng)頁內容 例如 同樣的一個XML格式的文件 如果header 函數(shù)的參數(shù)指定為 Content type application xml 瀏覽器會將其按照XML文件格式來解析 但如果是 Content type text xml 瀏覽器就會將其看做文本解析 5 1 5文件的上傳與下載 文件下載 header 函數(shù)結合readfile 函數(shù)可以下載將要瀏覽的文件 例如 下載html目錄下的1 txt文件可以使用以下代碼 5 1 5文件的上傳與下載 說明 以上這段代碼執(zhí)行后會彈出 文件下載 對話框 單擊 保存 按鈕選擇新地址保存該文件即實現(xiàn)了文件的下載 新文件名為index txt 如圖5 3所示 5 1 6其他常用文件函數(shù) 1 計算文件大小之前使用過的filesize 函數(shù)用于計算文件的大小 以字節(jié)為單位 例如 5 1 6其他常用文件函數(shù) 2 判斷文件是否存在如果希望在不打開文件的情況下檢查文件是否存在 可以使用file exists 函數(shù) 函數(shù)的參數(shù)為指定的文件或目錄 如果該文件或目錄存在 則返回TRUE 否則返回FALSE 例如 5 1 6其他常用文件函數(shù) 3 刪除文件使用unlink 函數(shù)可以刪除不需要的文件 如果成功 將返回TRUE 否則返回FALSE 例如 5 1 6其他常用文件函數(shù) 4 復制文件在文件操作中經(jīng)常會遇到要復制一個文件或目錄到某個文件夾的情況 在PHP中使用copy 函數(shù)來完成此操作 語法格式如下 boolcopy string source string dest resource context 說明 參數(shù) source為需要復制的源文件 參數(shù) dest為目標文件 參數(shù) context PHP5 3 0新增 的意義與之前介紹的相同 這里不具體解釋 復制后的新文件中內容與源文件完全相同 并且在復制文件的同時 也可以為新文件重新命名 如果復制成功則返回TRUE 否則返回FALSE 如果目標文件已經(jīng)存在 則將被覆蓋 例如 5 1 6其他常用文件函數(shù) 5 移動 重命名文件除了move uploaded file 函數(shù) 還有一個rename 函數(shù)也可以移動文件 語法格式如下 boolrename string oldname string newname resource context 說明 rename 函數(shù)主要用于對一個文件進行重命名 oldname是文件的舊名 newname為新的文件名 當然 如果 oldname與 newname的路徑不相同 就實現(xiàn)了移動該文件的功能 例如 5 1 6其他常用文件函數(shù) 6 文件指針操作PHP中有很多操作文件指針的函數(shù) 如rewind ftell fseek 函數(shù)等 之前用過的feof 函數(shù)用于測試文件指針是否處于文件尾部 也屬于文件指針操作函數(shù) rewind 函數(shù) 用于重置文件的指針位置 使指針返回到文件頭 它的參數(shù)只有一個 就是已經(jīng)打開的指定文件的文件句柄 ftell 函數(shù) 可以以字節(jié)為單位 報告文件中指針的位置 也就是文件流中的偏移量 它的參數(shù)也是已經(jīng)打開的文件句柄 fseek 函數(shù) 可以用于移動文件指針 語法格式如下 intfseek resource handle int offset int whence 5 1 6其他常用文件函數(shù) 說明 fseek 函數(shù)可以將文件指針 handle從 whence位置移動 offset個字節(jié) 新位置從文件頭開始以字節(jié)數(shù)度量 以 whence指定的位置加上 offset 可選參數(shù) whence的值可以是 SEEK SET 文件開始處 SEEK CUR 文件指針的當前位置 和SEEK END 文件的末尾 如果沒有指定 whence 默認為SEEK SET 要移動到文件末尾的位置 需要給 offset傳遞一個負值 函數(shù)如果操作成功則返回0 否則返回 1 注意 移動到EOF之后的位置不算錯誤 例如 顯示指針的當前位置 為0fseek handle 100 將指針移動100個字節(jié)echo 當前指針為 ftell handle 顯示當前指針值為100rewind handle 重置指針位置echo 當前指針為 ftell handle 指針值為0 5 1 7實例 投票統(tǒng)計 例5 2 使用之前學過的文件操作方法 編寫一個計算投票數(shù)量的程序 新建EX5 2 php文件 輸入代碼 保存后運行該文件 選擇單選按鈕進行投票 運行結果如圖5 4所示 5 2圖形處理 5 2 1安裝PHP圖像庫在PHP中有的圖形函數(shù)可以直接使用 但大多數(shù)函數(shù)需要安裝GD2函數(shù)庫后才能使用 有關GD2的詳細信息 讀者可以自行參考相關資料 在Windows平臺下 安裝GD2庫很簡單 PHP5中自帶了GD2庫擴展 就是PHP的ext目錄中的php gd2 dll文件 其實本書在安裝PHP時已經(jīng)安裝了所有的擴展庫 包括GD庫 PHP所能處理的圖像格式取決于所安裝的GD版本 以及其他GD可能用到的來訪問這些圖像格式的庫 5 2 2創(chuàng)建圖形 例5 3 繪制一條直線 并輸出到瀏覽器中 新建EX5 3 php文件 輸入以下代碼 5 2 2創(chuàng)建圖形 運行結果如圖5 5所示 5 2 2創(chuàng)建圖形 1 創(chuàng)建背景圖形創(chuàng)建背景可以使用imagecreate 和imagecreatetruecolor 函數(shù) 這兩個函數(shù)都可以創(chuàng)建一個空白的圖形 并返回一個圖像標志符 也可以稱為句柄 供其他函數(shù)使用 語法格式如下 resourceimagecreate int x size int y size resourceimagecreatetruecolor int x size int y size 說明 x size是背景的寬度 y size是背景的高度 imagecreate 函數(shù)用于建立一個基于調色板的圖形 創(chuàng)建后可改變背景顏色 imagecreatetruecolor 函數(shù)用于創(chuàng)建一個真彩色圖形 背景顏色默認為黑色 如果圖形創(chuàng)建成功 函數(shù)將返回一個句柄 如果失敗 并不會像其他函數(shù)一樣返回FALSE 這時可以使用die 函數(shù)來捕獲錯誤信息 例如 image imagecreate 200 200 ordie 創(chuàng)建圖形失敗 5 2 2創(chuàng)建圖形 2 使用已有圖片創(chuàng)建新圖形除了可以創(chuàng)建空白的背景圖形外 還可以將已有的圖片作為背景圖形來創(chuàng)建新的圖形 如imagecreatefromgif 函數(shù)可以根據(jù)已有的GIF圖片創(chuàng)建新圖形 imagecreatefromjpeg 函數(shù)可以根據(jù)已有的JPEG圖片創(chuàng)建新圖形 imagecreatefrompng 函數(shù)可以根據(jù)已有的PNG圖片創(chuàng)建新圖形 已有的圖片也可以是遠程的圖片文件 例如 5 2 2創(chuàng)建圖形 3 選擇顏色在處理圖形的操作中 經(jīng)常需要為圖形的某些部分分配顏色 這時顏色值的選擇就需要使用imagecolorallocate 函數(shù)來完成 語法格式如下 intimagecolorallocate resource image int red int green int blue 5 2 2創(chuàng)建圖形 說明 imagecolorallocate 函數(shù)返回一個標志符 代表了由給定的紅 綠 藍 RGB 值組成的顏色 red green和 blue分別是所需顏色的紅 綠 藍成分 這些參數(shù)是0 255的整數(shù)或者十六進制的0 x00 0 xFF imagecolorallocate 函數(shù)必須被調用以創(chuàng)建每一種用在 image所代表的圖形中的顏色 例如 5 2 2創(chuàng)建圖形 4 輸出圖形如果需要將已經(jīng)繪制的圖形輸出到瀏覽器或文件中 可以使用相應的函數(shù)來完成 例如 使用imagegif 可以將圖形以GIF格式輸出到瀏覽器或文件 imagejpeg 將圖形以JPEG格式輸出 imagepng 函數(shù)將圖形以PNG格式輸出等 語法格式如下 boolimagepng resource image string filename boolimagegif resource image string filename boolimagejpeg resource image string filename int quality 5 2 2創(chuàng)建圖形 不管輸出什么格式的圖片 都要使用header 函數(shù)向瀏覽器發(fā)送相應的頭信息 如要輸出GIF格式的圖片應使用 header Content type image gif 輸出JPEG格式的圖片應使用 header Content type image jpeg PNG格式使用 header Content type image png 例如 5 2 2創(chuàng)建圖形 5 清除資源為了節(jié)省資源 圖片創(chuàng)建后返回的句柄如果不再使用 就要用imagedestroy 函數(shù)來釋放與之相關的內存 例如 imagedestroy image 其中 image是已經(jīng)創(chuàng)建的句柄 5 2 3繪制圖形 1 繪制幾何圖形 1 畫一個點 使用imagesetpixel 函數(shù)可以在已經(jīng)創(chuàng)建的背景圖形上畫一個單一像素 即一個點 語法格式如下 boolimagesetpixel resource image int x int y int color 說明 imagesetpixel 函數(shù)在已經(jīng)創(chuàng)建的圖形 image上用 color顏色在 x y 坐標上畫一個點 起始坐標從左上角開始 坐標為 0 0 到右下角的坐標為 x size y size 其中 x size和 y size是背景圖形的寬和高 例如 5 2 3繪制圖形 2 畫一條線段 使用imageline 函數(shù)可以畫出一條線段 語法格式如下 boolimageline resource image int x1 int y1 int x2 int y2 int color 說明 imageline 函數(shù)可以在已經(jīng)創(chuàng)建的圖形 image上使用 color顏色畫出一條坐標從 x1 y1 到 x2 y2 的線段 例5 3中的線段正是使用imageline 函數(shù)畫出來的 3 畫一個矩形 幾何學中最重要的圖形就是矩形 繪制矩形可以使用imagerectangle 函數(shù)來完成 語法格式如下 boolimagerectangle resource image int x1 int y1 int x2 int y2 int color 說明 imagerectangle 函數(shù)在已經(jīng)創(chuàng)建的圖形 image上使用 color顏色畫出一個矩形 矩形的左上角坐標為 x1 y1 右下角坐標為 x2 y2 5 2 3繪制圖形 4 畫一個橢圓 使用imageellipse 函數(shù)可以畫出一個橢圓 語法格式如下 boolimageellipse resource image int cx int cy int w int h int color 說明 imageellipse 函數(shù)在圖形 image上畫一個中心坐標為 cx cy 的橢圓 w和 h分別指定了橢圓的寬度和高度 橢圓線條的顏色由 color指定 當橢圓的寬度和高度相等時 畫出的將是一個圓 例5 4 使用imageellipse 函數(shù)畫一個橢圓和一個圓 新建EX5 4 php文件 輸入以下代碼 5 2 3繪制圖形 運行結果如圖5 6所示 5 2 3繪制圖形 5 畫一個橢圓弧 imageellipse 函數(shù)用于創(chuàng)建一個完整的橢圓 而如果只要創(chuàng)建一個橢圓弧 可以使用imagearc 函數(shù) 語法格式如下 boolimagearc resource image int cx int cy int w int h int s int e int color 說明 imagearc 函數(shù)以坐標 cx cy 為中心在圖形 image上畫一個橢圓弧 w和 h分別指定了橢圓的寬度和高度 當高度和寬度相等時 畫出來的就是圓弧 起始和結束點用 s和 e參數(shù)以角度指定 0 位于三點鐘位置 以順時針方向繪畫 例如 imagearc image 100 100 150 150 0 180 color 畫一個半圓弧imagearc image 200 100 150 150 0 360 color 畫一個圓imagearc image 300 100 200 150 90 180 color 畫一個橢圓弧 5 2 3繪制圖形 6 畫一個多邊形 使用imagepolygon 函數(shù)可以畫出一個多邊形 語法格式如下 boolimagepolygon resource image array points int num points int color 例5 5 繪制一個五邊形 新建EX5 5 php文件 輸入以下代碼 5 2 3繪制圖形 運行結果如圖5 7所示 5 2 3繪制圖形 2 輸出文本 1 輸出一個字符 使用imagechar 函數(shù)可以在圖形上水平輸出一個字符 語法格式如下 boolimagechar resource image int font int x int y string c int color 說明 函數(shù)用顏色 color將字符 c畫到 image的 x y 坐標處 這是字符串左上角坐標 如果 c是一個字符串 則只輸出第一個字符 font表示字符串的字體 如果值為1 5中的一個數(shù) 則使用內置字體 值為5時字體最大 為1時最小 例如 imagechar image 5 50 50 C color 5 2 3繪制圖形 2 輸出字符串 使用imagestring 函數(shù)可以在已經(jīng)創(chuàng)建的背景圖形上輸出字符串 語法格式如下 boolimagestring resource image int font int x int y string s int color 說明 函數(shù)用顏色 color將字符串 s畫到 image的 x y 坐標處 這是字符串左上角坐標 例如 5 2 3繪制圖形 3 使用指定字體輸出字符串 使用imagettftext 函數(shù)可以在輸出字符的同時指定輸出字符所使用的字體 并根據(jù)參數(shù)的不同輸出不同角度的字符串 語法格式如下 arrayimagettftext resource image float size float angle int x int y int color string fontfile string text 5 2 3繪制圖形 例5 6 以不同角度輸出字符串 并指定字體 新建EX5 6 php文件 輸入以下代碼 5 2 3繪制圖形 運行結果如圖5 8所示 5 2 3繪制圖形 4 輸出中文字符 中文字符不可以使用imagettftext 函數(shù)在圖片中直接輸出 如果要輸出中文字符 需要先使用iconv 函數(shù)對中文字符進行編碼 語法格式如下 stringiconv string in charset string out charset string str 說明 參數(shù) in charset是中文字符原來的字符集 out charset是編碼后的字符集 str是需要轉換的中文字符串 函數(shù)最后返回編碼后的字符串 這時使用imagettftext 函數(shù)就可以在圖片中輸出中文了 例如 5 2 3繪制圖形 輸出效果如圖5 9所示 5 2 3繪制圖形 3 繪制帶填充色的幾何圖形在實際的繪圖過程中 經(jīng)常需要對圖形中的某一區(qū)域填充顏色 這樣圖形才會變得更加美觀 在PHP中可以使用imagefill 函數(shù)對某一區(qū)域進行顏色填充 語法格式如下 boolimagefill resource image int x int y int color 說明 函數(shù)在 image圖形的坐標 x y 處用顏色 color執(zhí)行區(qū)域填充 即與 x y 點顏色相同且相鄰的點都會被填充上該顏色 例如 5 2 3繪制圖形 1 畫一個矩形并填色 使用imagefilledrectangle 函數(shù)可以畫一個矩形 并使用指定顏色填充該矩形 語法格式如下 boolimagefilledrectangle resource image int x1 int y1 int x2 int y2 int color 說明 imagefilledrectangle 函數(shù)的功能和參數(shù)結構與imagerectangle 函數(shù)類似 不同之處在于 imagerectangle 函數(shù)的 color參數(shù)指定的是矩形線條的顏色 imagefilledrectangle 函數(shù)的 color參數(shù)指定的是整個矩形區(qū)域的顏色 例如 5 2 3繪制圖形 2 畫一個橢圓并填色 使用imagefilledellipse 函數(shù)可以在已經(jīng)創(chuàng)建的圖形上畫一個橢圓 并使用指定顏色進行填充 語法格式如下 boolimagefilledellipse resource image int cx int cy int w int h int color 3 畫一個橢圓弧并填色 函數(shù)imagefilledarc 可以畫一個橢圓弧并填充顏色 語法格式如下 boolimagefilledarc resource image int cx int cy int w int h int s int e int color int style 例5 7 通過一個圓盤圖 顯示某人某月的生活支出分布情況 新建EX5 7 Hpage php文件 輸入代碼 新建EX5 7 Ppage php 輸入代碼 5 2 3繪制圖形 運行EX5 7 Hpage php文件 在頁面的表格中依次輸入一組數(shù)據(jù) 如圖5 10所示 單擊 提交 按鈕 結果如圖5 11所示 5 2 4圖形的處理 1 顏色處理 1 指定顏色填充 使用imagefilltoborder 函數(shù)可以為指定點進行顏色填充 如果遇到指定顏色的邊界時 則停止填充 語法格式如下 boolimagefilltoborder resource image int x int y int border int color 說明 該函數(shù)從坐標 x y 開始用 color顏色執(zhí)行區(qū)域填充 直到碰到顏色為 border的邊界為止 邊界內的所有顏色都會被填充 例如 5 2 4圖形的處理 2 定義透明色 使用imagecolorallocatealpha 函數(shù)也可以為指定的圖形分配顏色 還可以設置顏色的透明度 語法格式如下 intimagecolorallocatealpha resource image int red int green int blue int alpha 說明 imagecolorallocatealpha 函數(shù)比imagecolorallocate 函數(shù)多了一個參數(shù) alpha 這個參數(shù)就用于設置顏色的透明度 其值從0到127 0表示完全不透明 127表示完全透明 例如 5 2 4圖形的處理 2 復制圖片的一部分使用imagecopy 函數(shù)能夠復制圖片的一部分到另一個圖片中 語法格式如下 boolimagecopy resource dst im resource src im int dst x int dst y int src x int src y int src w int src h 說明 將 src im中坐標從 src x src y 開始 寬度為 src w 高度為 src h的一部分復制到 dst im中坐標為 dst x dst y 的位置上 例5 8 復制圖片的一部分到另一張圖片中 圖片位于工作目錄中的image目錄下 新建EX5 8 php文件 輸入以下代碼 5 2 4圖形的處理 運行結果如圖5 12所示 5 2 4圖形的處理 3 復制圖片并調整大小使用imagecopyresized 函數(shù)也可以實現(xiàn)imagecopy 函數(shù)的功能 并可以對復制的圖片大小進行調整 語法格式如下 boolimagecopyresized resource dst image resource src image int dst x int dst y int src x int src y int dst w int dst h int src w int src h 說明 imagecopyresized 函數(shù)比imagecopy 函數(shù)多了兩個參數(shù) dst w和 dst h 這兩個參數(shù)表示將復制的圖片寬度和高度分別調整為 dst w和 dst h 即實現(xiàn)了圖片的縮放功能 例如 imagecopyresized image1 image2 50 5 50 0 50 50 160 160 復制圖片的一部分并調整大小 例5 9 上傳圖片 并用縮略圖顯示 新建EX5 9 php文件 輸入代碼 5 2 4圖形的處理 運行EX5 9 php文件 選擇一幅JPEG圖片 單擊 提交 按鈕 結果如圖5 13所示 5 2 4圖形的處理 4 旋轉圖像使用imagerotate 函數(shù)可以將圖像旋轉給定角度 語法格式如下 resourceimagerotate resource src im float angle int bgd color int ignore transparent 5 2 4圖形的處理 說明 參數(shù) src im是給定的圖像 angle是指定的旋轉角度 bgd color指定了旋轉后沒有覆蓋到的部分的顏色 旋轉的中心是圖像的中心 旋轉后的圖像會按比例縮小以適合目標圖像的大小 邊緣不會被剪去 可選參數(shù) ignore transparent是PHP5 1 0新增加的 若被設為非零值 則透明色會被忽略 否則會被保留 例如 將圖像旋轉45 后顯示 5 2 5其他的圖形函數(shù) 1 取得圖形信息之前介紹的imagesx 和imagesy 函數(shù)可以獲取圖形的寬和高 這里介紹的getimagesize 函數(shù)可以獲取指定圖形的尺寸 寬度 高度和類型等信息 該函數(shù)將這些信息以數(shù)組的形式返回 如果圖片指定的圖形不是有效的文件 則返回FALSE 例如 400 1 400 2 1 3 width 400 height 400 bits 8 channels 3 mime image gif 5 2 5其他的圖形函數(shù) 2 設定畫線使用imagesetthickness 函數(shù)可以設置畫幾何圖形時畫線的寬度 語法格式如下 boolimagesetthickness resource image int thickness 說明 該函數(shù)將畫線寬度設為 thickness個像素 例如 5 2 6實例 自動生成驗證碼 例5 10 在制作一個用戶留言頁面時需要進行驗證 本例自動生成驗證碼圖片 用戶輸入驗證碼圖片中字符 系統(tǒng)進行驗證 新建EX5 10 image php文件 用于產(chǎn)生驗證碼圖片 輸入代碼 新建EX5 10 php文件 用于輸入驗證碼圖片中字符 系統(tǒng)進行驗證 輸入代碼 運行結果如圖5 14所示 5 3日期和時間 5 3 1UNIX時間戳在當前大多數(shù)的UNIX系統(tǒng)中 保存當前日期和時間的方法是 保存格林尼治標準時間從1970年1月1日零點起到當前時刻的秒數(shù) 以32為整列表示 1970年1月1日零點也稱為UNIX紀元 在Windows系統(tǒng)下也可以使用UNIX時間戳 簡稱為時間戳 但如果時間是在1970年以前或2038年以后 處理的時候可能會出現(xiàn)問題 PHP在處理有些數(shù)據(jù) 特別是對數(shù)據(jù)庫中時間類型的數(shù)據(jù)進行格式化時 經(jīng)常需要先將時間類型的數(shù)據(jù)轉化為UNIX時間戳再進行處理 另外 不同的數(shù)據(jù)庫系統(tǒng)對時間類型的數(shù)據(jù)不能兼容轉換 這時就需要將時間轉化為UNIX時間戳 再對時間戳進行操作 這樣就實現(xiàn)了不同數(shù)據(jù)庫系統(tǒng)的跨平臺性 5 3 2時間轉化為時間戳 如果要將用字符串表達的日期和時間轉化為時間戳的形式 可以使用strtotime 函數(shù) 語法格式如下 intstrtotime string time int now 說明 time是包含英語日期格式的字符串 time值如果有毫秒數(shù)將被忽略 其值相對于 now參數(shù)給出的時間 如果沒有給出則默認使用系統(tǒng)當前時間 例如 輸出1408147200echostrtotime 2014 08 1610 24 30 輸出1408184670echostrtotime 10September2014 輸出1410307200 5 3 2時間轉化為時間戳 另一個取得日期的UNIX時間戳的函數(shù)是mktime 函數(shù) 語法格式如下 intmktime int hour int minute int second int month int day int year 說明 hour表示小時數(shù) minute表示分鐘數(shù) second表示秒數(shù) month表示月份 day表示天數(shù) year表示年份 year的合法范圍是1901 2038之間 不過此限制自PHP5 1 0起已被克服了 如果所有的參數(shù)都為空 則默認為當前時間 例如 輸出1408147200echo timenum2 mktime 10 24 30 8 16 2014 輸出1408184670 5 3 3獲取日期和時間 1 date 函數(shù)PHP中最常用的日期和時間函數(shù)就是date 函數(shù) 該函數(shù)的作用是將時間戳按照給定的格式轉化為具體的日期和時間字符串 語法格式如下 stringdate string format int timestamp 說明 format指定了轉化后的日期和時間的格式 timestamp是需要轉化的時間戳 如果省略則使用本地當前時間 即默認值為time 函數(shù)的值 time 函數(shù)返回當前時間的時間戳 例如 echotime 輸出當前時間的時間戳date函數(shù)的 format參數(shù)的取值如表5 2所示 5 3 3獲取日期和時間 例如 輸出12th May 2014echodate Y m d 輸出2014 05 12echodate lM strtotime 2014 08 16 輸出SaturdayAugechodate l mktime 0 0 0 7 1 2000 輸出Saturdayechodate U 輸出當前時間的時間戳 5 3 3獲取日期和時間 2 getdate 函數(shù)使用getdate 函數(shù)也可以獲取日期和時間信息 語法格式如下 arraygetdate int timestamp 說明 timestamp是要轉化的時間戳 如果不給出則使用當前時間 函數(shù)根據(jù) timestamp返回一個包含日期和時間信息的數(shù)組 數(shù)組的鍵名和值如表5 3所示 5 3 3獲取日期和時間 例如 6 minutes 29 hours 3 mday 12 wday 1 mon 5 year 2014 yday 131 weekday Monday month May 0 1399865346 print r array2 輸出Array seconds 0 minutes 0 hours 0 mday 16 wday 6 mon 8 year 2014 yday 227 weekday Saturday month August 0 1408147200 5 3 4其他日期和時間函數(shù) 1 日期和時間的計算由于時間戳是32位整型數(shù)據(jù) 所以通過對時間戳進行加減法運算可計算兩個時間的差值 例如 5 3 4其他日期和時間函數(shù) 2 檢查日期checkdate 函數(shù)可以用于檢查一個日期數(shù)據(jù)是否有效 語法格式如下 boolcheckdate int month int day int year 說明 year的值是從1到32767 month的值從1到12 day的值在給定的 month值所具有的天數(shù)范圍內 其中閏年的情況也考慮在內 當給定的日期是有效的日期時 函數(shù)返回TRUE 否則返回FALSE 例如 5 3 4其他日期和時間函數(shù) 3 設置時區(qū)系統(tǒng)默認的是格林尼治標準時間 所以顯示當前時間時可能與本地時間會有差別 PHP提供了可以修改時區(qū)的函數(shù)date default timezone set 語法格式如下 booldate default timezone set string timezone identifier 參數(shù) timezone identifier為要指定的時區(qū) 中國大陸可用的值是Asia Chongqing Asia Shanghai Asia Urumqi 依次為重慶 上海 烏魯木齊 北京時間可以使用PRC 例如 5 3 5實例 生成日歷 例5 11 輸出某個月的日歷 要求年份和月份可以進行選擇 新建EX5 11 php文件 輸入代碼 運行結果如圖5 15所示- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- PHP 常用 功能模塊
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。
鏈接地址:http://www.hcyjhs8.com/p-6402752.html