PHP編程基礎(chǔ)與實例教程.ppt_第1頁
PHP編程基礎(chǔ)與實例教程.ppt_第2頁
PHP編程基礎(chǔ)與實例教程.ppt_第3頁
PHP編程基礎(chǔ)與實例教程.ppt_第4頁
PHP編程基礎(chǔ)與實例教程.ppt_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、PHP編程基礎(chǔ)與實例教程PHP Fundamentals & Practices,第 6 章 PHP的數(shù)據(jù)采集,主講:孔祥盛,本章大綱,6-1 瀏覽器端數(shù)據(jù)的提交方式 6-2 相對路徑和絕對路徑 6-3 使用FORM表單實現(xiàn)瀏覽器端的數(shù)據(jù)采集 6-4 使用$_GET和$_POST“采集”表單數(shù)據(jù) 6-5 上傳文件的“數(shù)據(jù)采集” 6-6 WEB服務(wù)器端其它數(shù)據(jù)采集方法,6-1 瀏覽器端數(shù)據(jù)的提交方式,1. GET提交方式 GET提交方式是將“請求”數(shù)據(jù)以查詢字符串(Query String)格式附在URL之后“提交”數(shù)據(jù)。例如: http:/localhost/2/register.php?us

2、erName=victor&password=1234&confirmPassword=1234。 在這個URL中,問號“?” 表示查詢字符串的開始,問號“?”后面的字符串參數(shù)“userName=victor&password=1234&confirmPassword=1234”為查詢字符串??梢钥闯觯翰樵冏址梢园鄠€參數(shù),每個參數(shù)以“參數(shù)名=參數(shù)值”的格式定義,參數(shù)之間使用“&”相連,最后再將查詢字符串使用“?”附在URL之后。 另外,F(xiàn)ORM表單也提供了GET提交方式。 除此以外,使用超鏈接標(biāo)簽也可以實現(xiàn)瀏覽器端GET提交方式,6-1 瀏覽器端數(shù)據(jù)的提交方式,2. POST提交方式

3、POST數(shù)據(jù)提交方式一般通過FORM表單實現(xiàn),由于默認(rèn)情況下FORM表單的數(shù)據(jù)提交方式為GET方式,必須在FORM表單的標(biāo)簽中加入屬性:method=post,將數(shù)據(jù)提交方式修改為POST方式,6-1 瀏覽器端數(shù)據(jù)的提交方式,3. GET和POST混合提交方式 還可以使用FORM表單實現(xiàn)GET和POST混合提交方式,即向WEB服務(wù)器某PHP程序發(fā)出“GET請求”的同時,還向該PHP程序發(fā)出“POST請求,6-1 瀏覽器端數(shù)據(jù)的提交方式,4. 兩種提交方式的比較 POST提交方式比GET提交方式安全。這是由于GET提交方式提交的數(shù)據(jù)將出現(xiàn)在URL查詢字符串中,并且這些帶有查詢字符串的URL可以被

4、瀏覽器緩存到歷史記錄中。因此諸如用戶注冊、登錄等系統(tǒng),不建議使用GET提交方式。 POST提交方式可以提交更多的數(shù)據(jù)。理論上講POST提交方式提交的數(shù)據(jù)沒有大小限制,而GET提交方式提交的數(shù)據(jù)由于出現(xiàn)在URL查詢字符串中,而URL的長度是受限制的(例如IE瀏覽器對URL長度的限制是2083字節(jié))。例如:新聞發(fā)布系統(tǒng)中提交篇幅較長的新聞信息時,不建議使用GET提交方式;帶有文件上傳功能的FORM表單則必須使用POST提交方式。 不同的“提交”方式對應(yīng)的服務(wù)器端數(shù)據(jù)“采集”方式不同,6-2 相對路徑和絕對路徑,1. 絕對路徑 絕對路徑是與相對路徑相對立的,通常是一個完整的URL,該URL由兩個部分

5、構(gòu)成: scheme:用來描述尋找數(shù)據(jù)所采用的機制,即:協(xié)議。如http協(xié)議和ftp協(xié)議等 位置(Location):用來描述到哪兒去尋找數(shù)據(jù)的資源 這兩部分使用“:/”分隔,例如:http:/ 由于絕對路徑無論出現(xiàn)在哪兒都代表相同的內(nèi)容,因此絕對路徑通常在訪問系統(tǒng)外部資源時才使用,而訪問系統(tǒng)內(nèi)部資源時一般使用相對路徑,方便程序的移植,6-2 相對路徑和絕對路徑,2. 相對路徑 相對路徑可以分為兩類:server-relative路徑與page-relative路徑。 server-relative路徑是以斜杠“/”開頭的相對路徑。在HTML中,以斜杠“/”開頭的相對路徑表示從WEB服務(wù)器的根

6、目錄下開始查找相應(yīng)的資源文件。使用默認(rèn)配置安裝WAMP后,目錄“C:/wamp/www”為Apache服務(wù)器的根目錄,因此使用相對路徑“/index.php”訪問資源時,訪問的是目錄“C:/wamp/www”下的index.php頁面;使用相對路徑“/6/register.html”訪問資源時,訪問的是目錄“C:/wamp/www”中的目錄“6”下的register.html文件,6-2 相對路徑和絕對路徑,2. 相對路徑 page-relative路徑不以斜杠開頭。此時當(dāng)文件1訪問文件2(HTML頁面、PHP程序或圖片等)資源時,將從文件1的當(dāng)前目錄作為起點查找文件2資源。例如當(dāng)目錄“C:/

7、wamp/www/6/”中的register.html文件使用超鏈接訪問該目錄下的register.php文件時,只需在register.html文件的超鏈接中直接指定register.php文件即可,6-2 相對路徑和絕對路徑,3. 相對路徑其它概念 1同一個目錄下的資源訪問 如果文件1和文件2在同一個目錄,這兩個文件間的相互訪問直接使用文件名即可。 2如何表示當(dāng)前目錄 .表示文件的當(dāng)前目錄。 3如何表示上級目錄 ./表示文件所在目錄的上一級目錄,././表示文件所在目錄的上上級目錄,以此類推。 4如何表示下級目錄 如果文件1訪問下級目錄中的文件2,直接指定該目錄和文件2的文件名即可,6-3

8、 使用FORM表單實現(xiàn)瀏覽器端的數(shù)據(jù)采集,0. 預(yù)備 FORM表單由三部分組成: 表單標(biāo)簽:定義了表單處理程序及數(shù)據(jù)提交方式等信息。 表單控件:包括單行文本框、密碼框、隱藏域、多行文本框、復(fù)選框、單選框、下拉選擇框和文件上傳框等表單控件。 表單按鈕:包括提交按鈕、復(fù)位按鈕和一般按鈕,6-3 使用FORM表單實現(xiàn)瀏覽器端的數(shù)據(jù)采集,1. 表單標(biāo)簽 表單標(biāo)簽常用的屬性有action、method、enctype、title、name等。 1action屬性設(shè)置當(dāng)前表單數(shù)據(jù)“提交”的目的地址。當(dāng)不設(shè)置action屬性,或設(shè)置值等于空字符串(即action=)時,表單數(shù)據(jù)提交給當(dāng)前頁面。 2metho

9、d屬性設(shè)置表單數(shù)據(jù)的提交方式。method屬性的值為GET或POST,默認(rèn)為GET。 3title屬性設(shè)置表單的提示信息。當(dāng)用戶的鼠標(biāo)在表單處停留時,瀏覽器用一個黃色的小浮標(biāo)顯示提示文本,6-3 使用FORM表單實現(xiàn)瀏覽器端的數(shù)據(jù)采集,1. 表單標(biāo)簽 4enctype屬性設(shè)置提交表單數(shù)據(jù)時的編碼方式。enctype屬性的值為multipart/form-data或application/x-www-form-urlencoded,默認(rèn)為application/x-www-form-urlencoded。當(dāng)一個FORM表單中存在文件上傳框時,必須將enctype屬性設(shè)置為multipart/fo

10、rm-data編碼方式。 5name屬性為當(dāng)前的FORM表單命名,6-3 使用FORM表單實現(xiàn)瀏覽器端的數(shù)據(jù)采集,2. 表單控件 1單行文本框 2密碼框 3多行文本框 4隱藏域 5復(fù)選框 6單選框 7文件上傳框 8下拉選擇框,注意:表單控件嵌套在FORM表單中才有意義,且每個表單控件都要用一個name屬性進(jìn)行標(biāo)識。這是因為WEB服務(wù)器將依據(jù)表單控件的name屬性判斷傳遞給服務(wù)器的每個值分別是由哪個表單控件產(chǎn)生。為了確保數(shù)據(jù)的準(zhǔn)確采集,需要為每個表單控件定義一個獨一無二的名稱(同為一個組的單選框以及在表單控件中使用數(shù)組兩種情況除外,6-3 使用FORM表單實現(xiàn)瀏覽器端的數(shù)據(jù)采集,3. 在表單控件

11、中使用數(shù)組 在一個HTML頁面中,有時并不清楚某種表單控件的具體個數(shù)。例如:在進(jìn)行多文件上傳時,并不能確定瀏覽器用戶究竟選擇多少個上傳文件,更無法確定頁面中需要多少個文件上傳框。在表單控件中使用數(shù)組可以解決類似的問題。 在表單控件的name屬性值后面加上方括號“ ”從而實現(xiàn)在表單控件中使用數(shù)組。使用表單控件數(shù)組后,當(dāng)表單提交時,相同name屬性的表單控件則以數(shù)組的方式向WEB服務(wù)器提交多個數(shù)據(jù),6-3 使用FORM表單實現(xiàn)瀏覽器端的數(shù)據(jù)采集,4. 表單按鈕 1提交按鈕 2圖像提交按鈕 3重置按鈕 4自定義按鈕,6-3 使用FORM表單實現(xiàn)瀏覽器端的數(shù)據(jù)采集,5. FORM表單綜合應(yīng)用,用 戶

12、名: 登錄密碼: 確認(rèn)密碼:,選擇性別: 男 女 個人愛好: 音樂 游戲 電影 個人相片:,備注信息 : 請?zhí)顚憘渥⑿畔?提交按鈕: 圖片按鈕: 重置按鈕:,6-4 使用$_GET和$_POST“采集”表單數(shù)據(jù),當(dāng)瀏覽器向WEB服務(wù)器某PHP程序提交數(shù)據(jù)后,該PHP程序應(yīng)該根據(jù)其“提交”方式?jīng)Q定使用何種數(shù)據(jù)“采集”方法。當(dāng)瀏覽器以GET方式提交的數(shù)據(jù)時,服務(wù)器端PHP程序應(yīng)當(dāng)使用預(yù)定義變量$_GET“采集”提交數(shù)據(jù);當(dāng)瀏覽器以POST方式提交的數(shù)據(jù)時,服務(wù)器端PHP程序應(yīng)當(dāng)使用預(yù)定義變量$_POST“采集”提交數(shù)據(jù);當(dāng)以POST方式提交的請求數(shù)據(jù)中包含上傳文件時,服務(wù)器端PHP程序應(yīng)當(dāng)使用預(yù)定

13、義變量$_FILES“采集”上傳文件,6-5 上傳文件的“數(shù)據(jù)采集,1. 與上傳相關(guān)的配置 下面的配置選項保存在php.ini配置文件中,可以適當(dāng)?shù)男薷倪@些的配置選項滿足特定的文件上傳需要。 file_uploads:配置了是否允許通過HTTP協(xié)議上傳文件。默認(rèn)值為On,表示PHP預(yù)處理器支持文件上傳功能。典型配置示例:file_uploads = On post_max_size:使用POST提交方式提交表單數(shù)據(jù)時,post_max_size選項配置了PHP預(yù)處理器能夠接受的最大表單數(shù)據(jù)大小。默認(rèn)值為8M,表示表單中所有數(shù)據(jù)(包括上傳文件)大小之和必須小于8M字節(jié),否則PHP程序?qū)⒉荒懿杉?/p>

14、任何的表單數(shù)據(jù)。即當(dāng)表單數(shù)據(jù)大小大于post_max_size選項定義的值時,提交表單后,$_GET、$_POST和$_FILES將為空數(shù)組。典型配置示例:post_max_size = 8M,6-5 上傳文件的“數(shù)據(jù)采集,1. 與上傳相關(guān)的配置 upload_max_filesize:配置了當(dāng)前表單中文件上傳框允許上傳文件的最大值,默認(rèn)值為2M。當(dāng)表單中有多個文件上傳框時,可以使用upload_max_filesize選項限制每個上傳文件的大小。即若表單有多個文件上傳框時,文件大小不超過upload_max_filesize選項定義的上傳框?qū)⑸蟼鞒晒?,文件大小超過upload_max_fil

15、esize選項定義的上傳框?qū)⑸蟼魇。蟼骺蛑g互不影響上傳結(jié)果。典型配置示例:upload_max_filesize = 2M,6-5 上傳文件的“數(shù)據(jù)采集,1. 與上傳相關(guān)的配置 upload_tmp_dir:配置了PHP上傳文件的過程中產(chǎn)生臨時文件(默認(rèn)擴展名為tmp)的目錄。默認(rèn)值為:c:/wamp/tmp,表示臨時文件存放在目錄c:/wamp/tmp中。典型配置示例:upload_tmp_dir = c:/wamp/tmp 配置好上面四個參數(shù)后,在網(wǎng)絡(luò)正常的情況下,上傳小于8M的文件一般不會出現(xiàn)問題。但如果要上傳“大”文件,或者網(wǎng)速較慢,只進(jìn)行上面的配置未必行得通,此時還需進(jìn)行下面的

16、配置。 max_input_time:配置單個PHP程序解析提交數(shù)據(jù)(以POST或GET方式)的最大允許時間,單位是秒,默認(rèn)值為60。當(dāng)設(shè)置為-1 表示不限制。典型配置示例:max_input_time = 60,6-5 上傳文件的“數(shù)據(jù)采集,1. 與上傳相關(guān)的配置 memory_limit:配置單個PHP程序在服務(wù)器主機運行時,可以占用服務(wù)器最大內(nèi)存數(shù),默認(rèn)值為128M。當(dāng)設(shè)置為-1表示為不限制。典型配置示例:memory_limit = 128M max_execution_time:配置單個PHP程序在服務(wù)器端運行時占用服務(wù)器的最大時間,單位是秒,默認(rèn)值為30。配置該選項可以有效避免死循

17、環(huán)或大文件上傳等程序長期占用服務(wù)器CPU導(dǎo)致服務(wù)器崩潰。如果設(shè)置值為0表示不限制運行時間。典型配置示例:max_execution_time = 30。在PHP程序中使用set_time_limit()函數(shù)也可以設(shè)置該選項,例如:set_time_limit(0,6-5 上傳文件的“數(shù)據(jù)采集,2. PHP文件上傳流程,6-5 上傳文件的“數(shù)據(jù)采集,3. 預(yù)定義變量$_FILES 使用預(yù)定義變量$_FILES可以獲取上傳文件的相關(guān)信息,$_FILES是一個二維數(shù)組。例如可以在程序register.php中使用如下方法得到register.html表單中“個人相片”上傳文件的相關(guān)信息: $_FIL

18、ESmyPicturename:上傳文件的文件名; $_FILESmyPicturetype:上傳文件的MIME類型; $_FILESmyPicturesize:上傳文件的大小,單位為字節(jié); $_FILESmyPicturetmp_name:與上傳文件相對應(yīng)的服務(wù)器端的臨時文件名; $_FILESmyPictureerror:文件上傳的狀態(tài)代碼,6-5 上傳文件的“數(shù)據(jù)采集,4. 預(yù)定義變量$_FILES 說明:MIME類型就是設(shè)定某種擴展名的文件用一種應(yīng)用程序來打開的方式類型,當(dāng)該擴展名文件被訪問的時候,瀏覽器會自動使用指定應(yīng)用程序來打開。例如GIF圖片的MIME類型為:image/gif。

19、 $_FILESmyPictureerror的取值及對應(yīng)的意義為: 0:沒有錯誤發(fā)生,文件上傳成功。 1:上傳的文件超過了 php.ini 中upload_max_filesize選項限制的值。 2:上傳文件的大小超過了FORM表單中MAX_FILE_SIZE參數(shù)指定的值。 3:文件只有部分被上傳。 4:表單沒有選擇上傳文件,6-5 上傳文件的“數(shù)據(jù)采集,5. PHP文件上傳的實現(xiàn) PHP提供了兩個上傳相關(guān)的函數(shù):is_uploaded_file和move_uploaded_file函數(shù)。 1is_uploaded_file()函數(shù) 語法格式:bool is_uploaded_file ( s

20、tring fileName ) 函數(shù)功能:is_uploaded_file()函數(shù)用于判斷文件名為fileName的文件是否為上傳過程中產(chǎn)生的臨時文件。 例如:is_uploaded_file($_FILESmyPicturetmp_name)的返回值為TRUE,6-5 上傳文件的“數(shù)據(jù)采集,5. PHP文件上傳的實現(xiàn) 2move_uploaded_file()函數(shù) 語法格式:bool move_uploaded_file ( string fileName, string destination ) 函數(shù)功能:move_uploaded_file()函數(shù)用于將上傳過程中文件名為fileName的臨時文件移動到指定目錄destination中,確保文件的成功上傳。如果fileName 不是合法

溫馨提示

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

評論

0/150

提交評論