PHP網(wǎng)站開發(fā)實(shí)例教程(第3版) 課件 第4章 PHP進(jìn)階_第1頁(yè)
PHP網(wǎng)站開發(fā)實(shí)例教程(第3版) 課件 第4章 PHP進(jìn)階_第2頁(yè)
PHP網(wǎng)站開發(fā)實(shí)例教程(第3版) 課件 第4章 PHP進(jìn)階_第3頁(yè)
PHP網(wǎng)站開發(fā)實(shí)例教程(第3版) 課件 第4章 PHP進(jìn)階_第4頁(yè)
PHP網(wǎng)站開發(fā)實(shí)例教程(第3版) 課件 第4章 PHP進(jìn)階_第5頁(yè)
已閱讀5頁(yè),還剩124頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第4章PHP進(jìn)階《PHP網(wǎng)站開發(fā)實(shí)例教程(第3版)》學(xué)習(xí)目標(biāo)/Target

了解錯(cuò)誤類型,能夠說出常見的錯(cuò)誤類型。

掌握錯(cuò)誤信息,能夠在程序中控制錯(cuò)誤信息。

掌握HTTP請(qǐng)求和HTTP響應(yīng)的基本構(gòu)成,能夠查看請(qǐng)求數(shù)據(jù)和設(shè)置響應(yīng)數(shù)據(jù)。

掌握表單傳值的方法,能夠使用表單實(shí)現(xiàn)前后端數(shù)據(jù)交互。學(xué)習(xí)目標(biāo)/Target

掌握會(huì)話技術(shù),能夠使用會(huì)話技術(shù)記錄用戶在網(wǎng)站的活動(dòng)。

了解圖像處理,能夠說出常用的圖像處理函數(shù)。

掌握目錄和文件操作,能夠使用函數(shù)對(duì)目錄或文件進(jìn)行添加、刪除、修改等操作。

了解正則表達(dá)式的規(guī)則,能夠說出常用的正則表達(dá)式函數(shù)。章節(jié)概述/Summary通過對(duì)前面各章的學(xué)習(xí),讀者已經(jīng)能夠編寫簡(jiǎn)單的PHP程序。但是在實(shí)際開發(fā)中,還需要用到PHP中的一些進(jìn)階知識(shí),如錯(cuò)誤處理、HTTP、表單傳值、會(huì)話技術(shù)、圖像處理、目錄和文件操作、正則表達(dá)式等,本章將對(duì)這些內(nèi)容進(jìn)行詳細(xì)講解。目錄/Contents4.14.24.3錯(cuò)誤處理HTTP表單傳值4.4會(huì)話技術(shù)目錄/Contents4.54.64.7圖像處理目錄和文件操作正則表達(dá)式錯(cuò)誤處理4.1

先定一個(gè)小目標(biāo)!了解錯(cuò)誤類型,能夠說出常見的錯(cuò)誤類型。4.1.1錯(cuò)誤類型PHP中每個(gè)錯(cuò)誤類型都有一個(gè)常量與之關(guān)聯(lián),還可以使用具體的值表示,常見的錯(cuò)誤類型:4.1.1錯(cuò)誤類型常量值描述E_ERROR1致命的運(yùn)行時(shí)錯(cuò)誤,這類錯(cuò)誤不可恢復(fù),導(dǎo)致腳本停止運(yùn)行E_WARNING2運(yùn)行時(shí)警告,僅給出提示信息,腳本不會(huì)停止運(yùn)行E_PARSE4編譯時(shí)語(yǔ)法解析錯(cuò)誤,腳本無法運(yùn)行E_NOTICE8運(yùn)行時(shí)通知,表示腳本遇到可能會(huì)表現(xiàn)為錯(cuò)誤的情況E_CORE_ERROR16類似E_ERROR,是由PHP引擎核心產(chǎn)生的E_CORE_WARNING32類似E_WARNING,是由PHP引擎核心產(chǎn)生的E_COMPILE_ERROR64類似E_ERROR,是由Zend腳本引擎產(chǎn)生的E_COMPILE_WARNING128類似E_WARNING,是由Zend腳本引擎產(chǎn)生的1/2PHP中每個(gè)錯(cuò)誤類型都有一個(gè)常量與之關(guān)聯(lián),常量還可以用數(shù)值表示,常見的錯(cuò)誤類型:4.1.1錯(cuò)誤類型常量值描述E_USER_ERROR256類似E_ERROR,是由用戶在代碼中使用trigger_error()產(chǎn)生的E_USER_WARNING512類似E_WARNING,是由用戶在代碼中使用trigger_error()產(chǎn)生的E_USER_NOTICE1024類似E_NOTICE,是由用戶在代碼中使用trigger_error()產(chǎn)生的E_STRICT2048嚴(yán)格語(yǔ)法檢查,確保代碼具有互用性和向前兼容性E_RECOVERABLE_ERROR4096可被捕捉的致命錯(cuò)誤E_DEPRECATED8192運(yùn)行時(shí)通知,對(duì)未來版本中可能無法正常工作的代碼給出警告E_USER_DEPRECATED16384類似E_DEPRECATED,是由用戶在代碼中使用trigger_error()產(chǎn)生的E_ALL32767所有的錯(cuò)誤、警告和通知2/21.NoticeNotice類型的錯(cuò)誤通常是代碼不嚴(yán)謹(jǐn)造成的。示例代碼//設(shè)置時(shí)區(qū)的參數(shù)值錯(cuò)誤date_default_timezone_set('aaa');4.1.1錯(cuò)誤類型2.WarningWarning錯(cuò)誤相比Notice嚴(yán)重。示例代碼//使用include引入不存在的文件include'1234'; //提示信息:Warning:include(1234):Failedtoopenstream…4.1.1錯(cuò)誤類型使用include語(yǔ)句引入文件前,應(yīng)先判斷相應(yīng)文件是否存在,以防止錯(cuò)誤發(fā)生。3.FatalerrorFatalerror是致命錯(cuò)誤,一旦發(fā)生這種錯(cuò)誤,PHP腳本會(huì)立即停止運(yùn)行。示例代碼display();//Fatalerror:UncaughtError:Calltoundefinedfunction…echo'hello';//前一行代碼發(fā)生錯(cuò)誤,此行代碼不會(huì)執(zhí)行4.1.1錯(cuò)誤類型調(diào)用未定義的函數(shù)display()時(shí)發(fā)生了致命錯(cuò)誤,輸出語(yǔ)句沒有執(zhí)行。

先定一個(gè)小目標(biāo)!掌握錯(cuò)誤信息,能夠在程序中控制錯(cuò)誤信息。4.1.2錯(cuò)誤信息當(dāng)程序出錯(cuò)時(shí),PHP會(huì)報(bào)錯(cuò),報(bào)錯(cuò)的信息稱為錯(cuò)誤信息??刂棋e(cuò)誤信息的兩種方式錯(cuò)誤報(bào)告錯(cuò)誤日志4.1.2錯(cuò)誤信息修改配置文件error_reporting()函數(shù)和ini_set()函數(shù)修改配置文件error_log()函數(shù)1.錯(cuò)誤報(bào)告(1)修改配置文件在php.ini中默認(rèn)開啟了錯(cuò)誤報(bào)告。示例配置error_reporting=E_ALLdisplay_errors=Onerror_reporting設(shè)置錯(cuò)誤類型,E_ALL報(bào)告所有的錯(cuò)誤、警告和通知,關(guān)閉錯(cuò)誤報(bào)告設(shè)置為0。display_errors設(shè)置是否顯示錯(cuò)誤信息,On顯示,Off關(guān)閉。4.1.2錯(cuò)誤信息1.錯(cuò)誤報(bào)告(2)error_reporting()函數(shù)和ini_set()函數(shù)error_reporting()函數(shù)設(shè)置錯(cuò)誤級(jí)別常量,ini_set()函數(shù)設(shè)置php.ini中指定選項(xiàng)的值。示例代碼error_reporting(E_ALL);ini_set('display_errors',On);ini_set()函數(shù)第1個(gè)參數(shù)display_errors,第2個(gè)參數(shù)值On(也可以使用1代替)表示開啟,關(guān)閉設(shè)置為Off或0。4.1.2錯(cuò)誤信息2.錯(cuò)誤日志(1)通過修改php.ini配置文件記錄錯(cuò)誤日志在PHP的配置文件php.ini中添加錯(cuò)誤日志的配置。示例配置error_reporting=E_ALL;log_errors=Onerror_log=C:\web\php_errors.logerror_reporting設(shè)置錯(cuò)誤類型的常量log_errors設(shè)置是否記錄日志error_log指定錯(cuò)誤日志文件的路徑4.1.2錯(cuò)誤信息2.錯(cuò)誤日志(2)通過error_log()函數(shù)記錄錯(cuò)誤日志error_log()函數(shù)的第1個(gè)參數(shù)是錯(cuò)誤信息,第2個(gè)參數(shù)指定錯(cuò)誤信息記錄位置,默認(rèn)記錄到php.ini中error_log配置的日志中,第3個(gè)參數(shù)用于指定錯(cuò)誤日志文件的路徑。示例代碼//將錯(cuò)誤信息記錄到php.ini中error_log配置的日志文件中error_log('errormessagea');//將錯(cuò)誤信息記錄到錯(cuò)誤日志文件error_log('errormessageb',3,'C:/web/php.log');4.1.2錯(cuò)誤信息HTTP4.2

先定一個(gè)小目標(biāo)!了解HTTP的概念,能夠說出瀏覽器與Web服務(wù)器的交互過程。4.2.1HTTP概述HTTP由W3C推出,專門用于定義瀏覽器與Web服務(wù)器之間數(shù)據(jù)交換的格式。它不僅可以保證計(jì)算機(jī)正確快速地傳輸超文本文檔,還可以確定傳輸文檔中的哪部分或優(yōu)先展示哪部分內(nèi)容。4.2.1HTTP概述瀏覽器與Web服務(wù)器交互的過程:4.2.1HTTP概述HTTP在Web開發(fā)中占據(jù)重要的位置的原因:①簡(jiǎn)單快速:瀏覽器向服務(wù)器發(fā)送請(qǐng)求時(shí),只需發(fā)送請(qǐng)求方式和路徑,HTTP服務(wù)器的程序規(guī)模小,通信速度較快。②靈活:HTTP允許傳輸任意類型的數(shù)據(jù),包括文本、圖像、音頻、視頻等。③無連接:限制每次連接只處理一個(gè)請(qǐng)求,節(jié)省傳輸時(shí)間。④無狀態(tài):服務(wù)器只根據(jù)請(qǐng)求處理,不保存瀏覽器的狀態(tài)信息,可以減少服務(wù)器端的資源占用。4.2.1HTTP概述

先定一個(gè)小目標(biāo)!了解HTTP請(qǐng)求,能夠說出請(qǐng)求數(shù)據(jù)的組成。4.2.2HTTP請(qǐng)求用戶通過瀏覽器訪問某個(gè)URL地址,瀏覽器會(huì)向服務(wù)器發(fā)送請(qǐng)求數(shù)據(jù)。請(qǐng)求數(shù)據(jù)的組成:4.2.2HTTP請(qǐng)求請(qǐng)求行請(qǐng)求數(shù)據(jù)的第一行,包含請(qǐng)求方式、請(qǐng)求資源路徑和HTTP版本。請(qǐng)求頭向服務(wù)器傳遞附加消息,如瀏覽器可以接收的數(shù)據(jù)類型、壓縮方法、語(yǔ)言和系統(tǒng)環(huán)境。請(qǐng)求體通過POST方式提交表單,用戶數(shù)據(jù)在請(qǐng)求體中發(fā)送。數(shù)據(jù)格式是name=value,多個(gè)數(shù)據(jù)使用&連接??招杏糜诜指粽?qǐng)求頭和請(qǐng)求體。HTTP請(qǐng)求方式:4.2.2HTTP請(qǐng)求請(qǐng)求方式說明HEAD用于獲取指定資源的響應(yīng)頭信息而不獲取實(shí)際內(nèi)容GET用于從服務(wù)器獲取資源POST用于向服務(wù)器提交數(shù)據(jù)PUT用于向服務(wù)器更新或創(chuàng)建資源DELETE用于請(qǐng)求服務(wù)器刪除指定的資源OPTIONS用于查詢服務(wù)器支持的請(qǐng)求方式

先定一個(gè)小目標(biāo)!了解查看請(qǐng)求數(shù)據(jù),能夠說出常見的請(qǐng)求頭字段含義。4.2.3查看請(qǐng)求數(shù)據(jù)以百度網(wǎng)站為例,查看請(qǐng)求數(shù)據(jù):4.2.3查看請(qǐng)求數(shù)據(jù)常見的請(qǐng)求頭字段和說明:請(qǐng)求頭字段說明Accept瀏覽器支持的數(shù)據(jù)類型Accept-Charset瀏覽器采用的字符集Accept-Encoding瀏覽器支持的內(nèi)容編碼方式,通常使用數(shù)據(jù)壓縮算法Accept-Language瀏覽器所支持的語(yǔ)言,可以指定多個(gè)Host瀏覽器想要訪問的服務(wù)器主機(jī)If-Modified-Since瀏覽器對(duì)資源的最后緩存時(shí)間Referer瀏覽器指向的Web頁(yè)的URLUser-Agent瀏覽器的系統(tǒng)信息,包括使用的操作系統(tǒng)、瀏覽器版本號(hào)等Cookie服務(wù)器使用Set-Cookie發(fā)送cookie信息Cache-Control瀏覽器的緩存控制Connection請(qǐng)求完成后,希望瀏覽器是保持連接還是關(guān)閉連接4.2.3查看請(qǐng)求數(shù)據(jù)

先定一個(gè)小目標(biāo)!了解HTTP響應(yīng),能夠說出響應(yīng)數(shù)據(jù)的組成。4.2.4HTTP響應(yīng)服務(wù)器接收到請(qǐng)求數(shù)據(jù)后,將處理后的數(shù)據(jù)返回給瀏覽器,返回的數(shù)據(jù)被稱為響應(yīng)數(shù)據(jù)。響應(yīng)數(shù)據(jù)的組成:響應(yīng)行響應(yīng)數(shù)據(jù)的第一行,告知瀏覽器本次響應(yīng)的狀態(tài)。響應(yīng)頭告知瀏覽器本次響應(yīng)的基本信息,包括服務(wù)程序名,內(nèi)容的編碼格式、緩存控制等。響應(yīng)體服務(wù)器返回給瀏覽器的實(shí)體內(nèi)容。空行用于分隔響應(yīng)頭和響應(yīng)體。4.2.4HTTP響應(yīng)以百度網(wǎng)站為例,查看響應(yīng)數(shù)據(jù):4.2.4HTTP響應(yīng)HTTP/1.1是協(xié)議版本200是響應(yīng)狀態(tài)碼OK是狀態(tài)的描述信息響應(yīng)狀態(tài)碼是服務(wù)器對(duì)瀏覽器請(qǐng)求處理結(jié)果和狀態(tài)的表示,它由3位十進(jìn)制數(shù)組成。根據(jù)響應(yīng)狀態(tài)碼最左邊的數(shù)字分類,共分為5個(gè)類別,每個(gè)類別的具體作用:1xx:成功接收請(qǐng)求,要求瀏覽器繼續(xù)提交下一次請(qǐng)求才能完成整個(gè)處理流程。2xx:成功接收請(qǐng)求并已完成整個(gè)處理流程。3xx:未完成請(qǐng)求,瀏覽器需要進(jìn)一步細(xì)化請(qǐng)求。4xx:瀏覽器的請(qǐng)求有錯(cuò)誤。5xx:服務(wù)器端出現(xiàn)錯(cuò)誤。4.2.4HTTP響應(yīng)常見的響應(yīng)狀態(tài)碼:狀態(tài)碼字段含義說明200正常瀏覽器請(qǐng)求成功,響應(yīng)數(shù)據(jù)正常返回處理結(jié)果403禁止服務(wù)器理解瀏覽器的請(qǐng)求,但是拒絕處理,通常由服務(wù)器上文件或目錄的權(quán)限設(shè)置導(dǎo)致404找不到服務(wù)器中不存在瀏覽器請(qǐng)求的資源500服務(wù)器內(nèi)部錯(cuò)誤服務(wù)器內(nèi)部發(fā)生錯(cuò)誤,無法處理瀏覽器的請(qǐng)求4.2.4HTTP響應(yīng)常見的響應(yīng)頭字段和說明:響應(yīng)頭字段說明Server服務(wù)器的類型和版本信息Date服務(wù)器的響應(yīng)時(shí)間Expires控制緩存的過期時(shí)間Location控制瀏覽器顯示哪個(gè)頁(yè)面Accept-Ranges服務(wù)器是否支持分段請(qǐng)求,支持則需給定請(qǐng)求范圍Cache-Control服務(wù)器控制瀏覽器如何進(jìn)行緩存Content-Disposition服務(wù)器控制瀏覽器以下載方式打開文件4.2.4HTTP響應(yīng)1/2常見的響應(yīng)頭字段和說明:響應(yīng)頭字段說明Content-Encoding實(shí)體內(nèi)容的編碼格式Content-Length實(shí)體內(nèi)容的長(zhǎng)度Content-Language實(shí)體內(nèi)容的語(yǔ)言Content-Type實(shí)體內(nèi)容的類型Last-Modified請(qǐng)求文檔的最后一次修改時(shí)間Transfer-Encoding文件傳輸編碼Set-Cookie發(fā)送Cookie相關(guān)的信息Connection是否需要持久連接4.2.4HTTP響應(yīng)2/2

先定一個(gè)小目標(biāo)!掌握設(shè)置響應(yīng)數(shù)據(jù)的方法,能夠在程序中設(shè)置響應(yīng)數(shù)據(jù)。4.2.5設(shè)置響應(yīng)數(shù)據(jù)響應(yīng)數(shù)據(jù)由服務(wù)器返回給瀏覽器,通常不需要人為干預(yù)。但有時(shí)開發(fā)者會(huì)根據(jù)開發(fā)需求,手動(dòng)更改響應(yīng)數(shù)據(jù),以實(shí)現(xiàn)某些特殊功能。在PHP中,通過header()函數(shù)設(shè)置響應(yīng)數(shù)據(jù)。示例代碼//設(shè)置響應(yīng)實(shí)體內(nèi)容類型header('Content-Type:text/html;charset=UTF-8');//設(shè)置頁(yè)面重定向header('Location:login.php');4.2.5設(shè)置響應(yīng)數(shù)據(jù)服務(wù)器有多種響應(yīng)的實(shí)體內(nèi)容類型。如果請(qǐng)求的是網(wǎng)頁(yè),響應(yīng)實(shí)體類型就是HTML;如果請(qǐng)求的是圖片,響應(yīng)實(shí)體內(nèi)容類型就是圖片;如果響應(yīng)體是文本,可以直接使用echo語(yǔ)句輸出。通過Content-Type字段設(shè)置響應(yīng)的實(shí)體內(nèi)容類型。示例代碼//設(shè)定網(wǎng)頁(yè)的響應(yīng)實(shí)體內(nèi)容類型header('Content-Type:text/html;charset=UTF-8');//設(shè)定圖片的響應(yīng)實(shí)體內(nèi)容類型header('Content-Type:image/png');//設(shè)定文本的響應(yīng)實(shí)體內(nèi)容類型header('Content-Type:text/plain');echo'Hello,World!'; //輸出響應(yīng)實(shí)體內(nèi)容4.2.5設(shè)置響應(yīng)數(shù)據(jù)在PHP中,使用http_response_code()函數(shù)可以設(shè)置HTTP響應(yīng)狀態(tài)碼,輸出響應(yīng)數(shù)據(jù)之前,將響應(yīng)狀態(tài)碼包含在響應(yīng)數(shù)據(jù)中。示例代碼http_response_code(200);//設(shè)置響應(yīng)狀態(tài)碼為200http_response_code(404);//設(shè)置響應(yīng)狀態(tài)碼為4044.2.5設(shè)置響應(yīng)數(shù)據(jù)多學(xué)一招:MIMEMIMEMIME是一個(gè)通用的內(nèi)容類型表示方式,其寫法為“大類別/具體類型”。常見的MIME類型:類型含義類型含義text/plain普通文本(.txt)image/gifGIF圖像(.gif)text/xmlXML文檔(.xml)image/pngPNG圖像(.png)text/htmlHTML文檔(.html)image/jpegJPEG圖像(.jpg)表單傳值4.3

先定一個(gè)小目標(biāo)!熟悉表單傳值的方式,能夠說出常用的傳值方式。4.3.1表單傳值方式表單是網(wǎng)頁(yè)上輸入信息的區(qū)域,用戶可以在表單中填寫數(shù)據(jù)。在Web開發(fā)中,經(jīng)常使用表單完成信息搜索、用戶登錄、用戶注冊(cè)等功能。4.3.1表單傳值方式表單的傳值方式有GET和POST兩種,可以通過<form>標(biāo)簽的method屬性來指定傳值方式。4.3.1表單傳值方式示例代碼<formaction="表單提交地址"method="POST"><!--表單內(nèi)容--></form>使用GET方式提交表單時(shí)的URL:http://localhost/index.php?id=1&type=2

先定一個(gè)小目標(biāo)!掌握超全局變量的使用,能夠使用這些變量接收表單數(shù)據(jù)。4.3.2接收表單數(shù)據(jù)使用PHP提供的超全局變量接收表單數(shù)據(jù),超全局變量:變量名說明$GLOBALS用于訪問全局作用域中的變量$_SERVER包含當(dāng)前腳本的請(qǐng)求信息和服務(wù)器環(huán)境變量$_SESSION包含當(dāng)前會(huì)話中存儲(chǔ)的數(shù)據(jù)$_COOKIE包含通過Cookie傳遞給當(dāng)前腳本的參數(shù)$_FILES包含通過HTTPPOST文件上傳方式傳遞給當(dāng)前腳本的文件信息$_GET接收GET方式提交的數(shù)據(jù)$_POST接收POST方式提交的數(shù)據(jù)$_REQUEST接收GET和POST方式提交的數(shù)據(jù)4.3.2接收表單數(shù)據(jù)使用超全局變量$_POST接收數(shù)據(jù):示例代碼<?phpvar_dump($_POST);?><formaction=""method="POST"><inputtype="text"name="name"value="Tom"><inputtype="submit"value="提交"></form>4.3.2接收表單數(shù)據(jù)輸出結(jié)果:array(1){["name"]=>string(3)"Tom"}

先定一個(gè)小目標(biāo)!掌握表單提交數(shù)組值的方法,能夠使用表單提交數(shù)組值。4.3.3表單提交數(shù)組值表單提交數(shù)組值:示例代碼<formaction="表單提交地址"method="POST"><inputtype="checkbox"name="hobby[]"value="basketball">籃球

<inputtype="checkbox"name="hobby[]"value="football">足球

<inputtype="checkbox"name="hobby[]"value="vollyball">排球

<inputtype="submit"value="提交"></form>選擇籃球和足球輸出結(jié)果:array(1){["hobby"]=>array(2){[0]=>string(10)"basketball"[1]=>string(8)"football"}}4.3.3表單提交數(shù)組值會(huì)話技術(shù)4.4

先定一個(gè)小目標(biāo)!了解Cookie的概念,能夠說出Cookie在瀏覽器和服務(wù)器之間的傳輸過程。4.4.1Cookie簡(jiǎn)介Cookie是服務(wù)器為了辨別用戶身份而存儲(chǔ)在用戶本地終端上的數(shù)據(jù)。當(dāng)用戶第一次通過瀏覽器訪問服務(wù)器時(shí),服務(wù)器會(huì)向?yàn)g覽器響應(yīng)一些信息,這些信息都被保存在Cookie中。當(dāng)用戶使用瀏覽器再次訪問服務(wù)器時(shí),瀏覽器會(huì)將Cookie數(shù)據(jù)放在請(qǐng)求頭中發(fā)送給服務(wù)器。服務(wù)器根據(jù)請(qǐng)求頭中的Cookie數(shù)據(jù)判斷該用戶是否訪問過,進(jìn)而識(shí)別用戶的身份。4.4.1Cookie簡(jiǎn)介Cookie在瀏覽器和服務(wù)器之間的傳輸過程:4.4.1Cookie簡(jiǎn)介

先定一個(gè)小目標(biāo)!掌握Cookie的基本使用,能夠創(chuàng)建和獲取Cookie。4.4.2Cookie的基本使用方法1.創(chuàng)建Cookie使用setcookie()函數(shù)創(chuàng)建Cookie。4.4.2Cookie的基本使用方法語(yǔ)法格式boolsetcookie(string$name,//Cookie的名稱(必須)

string$value='',//Cookie的值(可選)

int$expire=0,//Cookie的有效期(可選)

string$path='',//Cookie在服務(wù)器端的路徑(可選)

string$domain='',//Cookie的有效域名(可選)

bool$secure=false,//指定是否通過安全的HTTPS連接傳輸Cookie(可選)

bool$httponly=false//指定Cookie只能通過HTTP和HTTPS訪問(可選))4.4.2Cookie的基本使用方法示例代碼<?phpsetcookie('name','value');1.在cookie.php文件中使用setcookie()函數(shù)創(chuàng)建Cookie2.訪問cookie.php,查看設(shè)置Cookie后的響應(yīng)頭信息3.切換到“Cookies”標(biāo)簽頁(yè),查看保存的Cookie信息創(chuàng)建Cookie:2.獲取Cookie使用超全局變量$_COOKIE獲取Cookie。4.4.2Cookie的基本使用方法示例代碼var_dump($_COOKIE);//輸出結(jié)果:array(1){["name"]=>string(5)"value"}注意:第一次使用setcookie()函數(shù)創(chuàng)建Cookie時(shí),$_COOKIE中沒有Cookie數(shù)據(jù),只有瀏覽器下次請(qǐng)求并攜帶Cookie,才能通過$_COOKIE獲取到Cookie。多學(xué)一招:使用Cookie存儲(chǔ)多個(gè)值或數(shù)組使用Cookie存儲(chǔ)多個(gè)值或數(shù)組在Cookie名稱后添加“[]”用于存儲(chǔ)多個(gè)值或數(shù)組:setcookie('user[name]','tom');setcookie('user[age]',30);var_dump($_COOKIE);輸出結(jié)果:array(2){

["user"]=>array(2){

["name"]=>string(3)"tom"

["age"]=>string(2)"30"}}

先定一個(gè)小目標(biāo)!了解Session簡(jiǎn)介,能夠說出Session的實(shí)現(xiàn)原理。4.4.3Session簡(jiǎn)介Session存儲(chǔ)在服務(wù)器端,能夠?qū)崿F(xiàn)數(shù)據(jù)跨腳本共享,Session依賴于Cookie。通過瀏覽器訪問服務(wù)器時(shí),服務(wù)器會(huì)為瀏覽器創(chuàng)建一個(gè)SessionID和一個(gè)對(duì)應(yīng)的Session文件,將核心數(shù)據(jù)存儲(chǔ)在Session文件中,并將SessionID放入Cookie返回給瀏覽器。瀏覽器再次訪問服務(wù)器時(shí),服務(wù)器會(huì)根據(jù)Cookie中的SessionID打開對(duì)應(yīng)的Session文件獲取核心數(shù)據(jù)。4.4.3Session簡(jiǎn)介Session的實(shí)現(xiàn)原理:4.4.3Session簡(jiǎn)介Session文件的保存機(jī)制:4.4.3Session簡(jiǎn)介

先定一個(gè)小目標(biāo)!掌握Session的基本使用,能夠開啟Session、操作Session數(shù)據(jù)和銷毀Session。4.4.4Session的基本使用方法Session的基本使用方法:4.4.4Session的基本使用方法session_start(); //開啟Session$_SESSION['name']='tom'; //向Session中添加字符串$_SESSION['id']=[1,2,3]; //向Session中添加數(shù)組unset($_SESSION['name']); //刪除單個(gè)數(shù)據(jù)$_SESSION=[]; //刪除所有數(shù)據(jù)session_destroy(); //銷毀Session使用$_SESSION=[];刪除所有數(shù)據(jù)時(shí),Session文件仍然存在,它是空文件使用session_destroy()函數(shù)可以刪除空文件

先定一個(gè)小目標(biāo)!熟悉Session的配置,能夠歸納常用的配置項(xiàng)。4.4.5Session的配置php.ini中和Session相關(guān)的常用配置:4.4.5Session的配置配置項(xiàng)含義指定Cookie的名稱,只能由字母和數(shù)字組成,默認(rèn)為PHPSESSIDsession.save_path讀取或設(shè)置當(dāng)前會(huì)話文件的保存路徑,默認(rèn)為C:\Windows\Tempsession.auto_start指定是否在請(qǐng)求開始時(shí)自動(dòng)啟動(dòng)一個(gè)會(huì)話,默認(rèn)為0(不啟動(dòng))session.cookie_lifetime以秒數(shù)指定發(fā)送到瀏覽器的Cookie的生命周期,默認(rèn)為0(直到關(guān)閉瀏覽器)session.cookie_path指定要設(shè)定會(huì)話Cookie的路徑,默認(rèn)為“/”session.cookie_domain指定要設(shè)定會(huì)話Cookie的域名,默認(rèn)為無session.cookie_secure指定是否僅通過安全連接發(fā)送Cookie,默認(rèn)為offsession.cookie_httponly指定是否僅通過HTTP訪問Cookie,默認(rèn)為off通過session_start()函數(shù)可以對(duì)Session進(jìn)行配置,該函數(shù)接收關(guān)聯(lián)數(shù)組形式的參數(shù),數(shù)組的鍵名不包括“session.”,直接書寫其后的配置項(xiàng)名稱即可。session_start(['name'=>'MySESSID']);將“”的配置項(xiàng)的值修改為“MySESSID”4.4.5Session的配置

先定一個(gè)小目標(biāo)!掌握會(huì)話技術(shù)的使用,能夠根據(jù)需求實(shí)現(xiàn)用戶登錄和退出。4.4.6【案例】用戶登錄和退出在Web開發(fā)中,經(jīng)常需要實(shí)現(xiàn)用戶登錄和退出的功能。用戶登錄的需求:用戶進(jìn)入網(wǎng)站首頁(yè)時(shí),如果未登錄,自動(dòng)跳轉(zhuǎn)登錄頁(yè)面。用戶輸入正確的用戶名和密碼登錄成功,使用Session保存登錄狀態(tài)。用戶輸入的用戶名或密碼不正確,則登錄失敗。用戶退出登錄的需求:?jiǎn)螕敉顺霭粹o,刪除Session中保存的用戶登錄狀態(tài)。

案例需求4.4.6【案例】用戶登錄和退出①創(chuàng)建login.html顯示用戶登錄的頁(yè)面。該頁(yè)面有兩個(gè)文本輸入框和一個(gè)“登錄”按鈕,在文本框中填寫用戶名和密碼,單擊“登錄”按鈕將表單數(shù)據(jù)提交給login.php。②創(chuàng)建login.php接收用戶登錄的表單數(shù)據(jù),判斷用戶名和密碼是否正確,如果正確,將用戶的登錄狀態(tài)保存到Session,如果錯(cuò)誤,給出提示信息。

實(shí)現(xiàn)思路4.4.6【案例】用戶登錄和退出③創(chuàng)建index.php,當(dāng)Session成功保存用戶的登錄狀態(tài)時(shí)顯示首頁(yè),否則跳轉(zhuǎn)到登錄頁(yè)面。④創(chuàng)建logout.php,當(dāng)用戶退出登錄時(shí)刪除Session中保存的用戶登錄狀態(tài)。

實(shí)現(xiàn)思路4.4.6【案例】用戶登錄和退出圖像處理4.5

先定一個(gè)小目標(biāo)!了解開啟GD擴(kuò)展的方法,能夠開啟GD擴(kuò)展。4.5.1開啟GD擴(kuò)展在PHP中,要想使用GD庫(kù),需要先開啟GD擴(kuò)展。在php.ini中找到“;extension=gd”配置項(xiàng),去掉分號(hào)開啟GD擴(kuò)展:extension=gd4.5.1開啟GD擴(kuò)展

先定一個(gè)小目標(biāo)!了解圖像處理函數(shù),能夠說出常用的圖像處理函數(shù)。4.5.2常用的圖像處理函數(shù)常用的圖像處理函數(shù):4.5.2常用的圖像處理函數(shù)函數(shù)描述imagecreatetruecolor(int$width,int$height)用于創(chuàng)建指定寬高的真彩色空白畫布圖像getimagesize(string$filename,array&$image_info=null)用于獲取圖像的大小imagecolorallocate(GdImage$image,int$red,int$green,int$blue)用于為畫布分配顏色imagefill(GdImage$image,int$x,int$y,int$color)用于為畫布填充顏色imagestring(GdImage$image,GdFont|int$font,int$x,int$y,string$string,int$color)用于將字符串寫入畫布中imagettftext(GdImage$image,float$size,float$angle,int$x,int$y,int$color,string$font_filename,string$text,array$options=[])用于將文本寫入畫布中imageline(GdImage$image,int$x1,int$y1,int$x2,int$y2,int$color)用于在畫布中繪制直線1/2常用的圖像處理函數(shù):4.5.2常用的圖像處理函數(shù)函數(shù)描述imagecreatefromjpeg(string$filename)用于創(chuàng)建JPEG格式的圖像imagecreatefrompng(string$filename)用于創(chuàng)建PNG格式的圖像imagecopymerge(GdImage$dst_image,GdImage$src_image,int$dst_x,int$dst_y,int$src_x,int$src_y,int$src_width,int$src_height,int$pct)用于合并兩個(gè)圖像imagecopyresampled(GdImage$dst_image,GdImage$src_image,int$dst_x,int$dst_y,int$src_x,int$src_y,int$dst_width,int$dst_height,int$src_width,int$src_height)用于復(fù)制一部分圖像到目標(biāo)圖像中imagepng(GdImage$image,resource|string|null$file=null,int$quality=-1,int$filters=-1)用于輸出PNG格式的圖像imagejpeg(GdImage$image,resource|string|null$file=null,int$quality=-1)用于輸出JPEG格式的圖像imagedestroy(GdImage$image)用于銷毀圖像2/2

先定一個(gè)小目標(biāo)!掌握?qǐng)D像處理函數(shù)的使用,能夠使用圖像處理函數(shù)實(shí)現(xiàn)制作驗(yàn)證碼。4.5.3【案例】制作驗(yàn)證碼在實(shí)現(xiàn)數(shù)據(jù)輸入功能時(shí),需要考慮安全問題。如果用戶向服務(wù)器惡意提交大批量數(shù)據(jù),不僅會(huì)使數(shù)據(jù)庫(kù)的壓力驟增,還會(huì)產(chǎn)生大量的“臟”數(shù)據(jù)。為此,添加驗(yàn)證碼成為提交數(shù)據(jù)時(shí)的一種有效防御手段。驗(yàn)證碼是一張帶有文字的圖片,要求用戶輸入圖片中的文字,才可以進(jìn)行后續(xù)的表單提交操作。

案例需求4.5.3【案例】制作驗(yàn)證碼①創(chuàng)建自定義函數(shù),函數(shù)有4個(gè)參數(shù),分別表示畫布寬度、畫布高度、干擾線數(shù)量和字符個(gè)數(shù)。②根據(jù)外部傳入的寬度和高度創(chuàng)建畫布,并為畫布填充隨機(jī)的背景顏色。③生成隨機(jī)字符,將字符寫入畫布中。④在畫布中添加干擾線。⑤輸出圖片。

實(shí)現(xiàn)思路4.5.3【案例】制作驗(yàn)證碼目錄和文件操作4.6

先定一個(gè)小目標(biāo)!掌握目錄的操作,能夠使用函數(shù)對(duì)目錄進(jìn)行創(chuàng)建、重命名、讀取和刪除。4.6.1目錄操作1.創(chuàng)建目錄mkdir()函數(shù)用于創(chuàng)建目錄,該函數(shù)執(zhí)行成功返回true,執(zhí)行失敗返回false。語(yǔ)法格式boolmkdir(string$pathname[,int$mode=0777[,bool$recursive=false[,resource$context]]])$pathname要?jiǎng)?chuàng)建的目錄地址,地址的格式可以是絕對(duì)路徑也可以是相對(duì)路徑$mode用于指定目錄的訪問權(quán)限(用于Linux環(huán)境),默認(rèn)為0777$recursive指定是否遞歸創(chuàng)建目錄,默認(rèn)為false4.6.1目錄操作使用mkdir()函數(shù)創(chuàng)建目錄:示例代碼if(!file_exists('upload')){mkdir('upload');}示例代碼mkdir('upload');如果目錄已存在,會(huì)創(chuàng)建失敗并警告。使用file_exists()函數(shù)判斷目錄是否存在再創(chuàng)建4.6.1目錄操作2.重命名目錄rename()函數(shù)實(shí)現(xiàn)目錄或文件的重命名,該函數(shù)執(zhí)行成功返回true,執(zhí)行失敗返回false。4.6.1目錄操作語(yǔ)法格式boolrename(string$oldname,string$newname[,resource$context])示例代碼rename('upload','uploads');3.讀取目錄讀取目錄是指讀取目錄中的文件列表。讀取目錄的兩種方式:4.6.1目錄操作讀取目錄使用scandir()函數(shù)獲取目錄下的所有文件名使用opendir()函數(shù)獲取資源類型的目錄句柄,再使用readdir()函數(shù)訪問(1)使用scandir()函數(shù)獲取目錄下的所有文件名scandir()函數(shù)用于返回指定目錄中的文件和目錄,該函數(shù)執(zhí)行成功返回包含所有文件名的數(shù)組,執(zhí)行失敗返回false。4.6.1目錄操作語(yǔ)法格式boolscandir(string$directory[,int$order,resource$context])示例代碼$dir_info=scandir('./');foreach($dir_infoas$file){echo$file.'<br>';}查看當(dāng)前目錄下的所有內(nèi)容:(2)使用opendir()函數(shù)獲取目錄句柄后再使用readdir()函數(shù)進(jìn)行訪問opendir()函數(shù)用于打開目錄句柄,該函數(shù)執(zhí)行成功返回目錄的句柄,執(zhí)行失敗返回false。4.6.1目錄操作語(yǔ)法格式resourceopendir(string$path[,resource$context])語(yǔ)法格式resourcereaddir([resource$dir_handle])readdir()函數(shù)從目錄句柄中讀取條目,該函數(shù)執(zhí)行成功返回文件名稱,執(zhí)行失敗返回false。使用opendir()函數(shù)和readdir()函數(shù)讀取目錄中的內(nèi)容:4.6.1目錄操作示例代碼$resource=opendir('./');$file='';while($file=readdir($resource)){echo$file.'<br>';}closedir($resource);目錄的操作通常具有不確定性,為了保證代碼的嚴(yán)謹(jǐn)性,減少代碼執(zhí)行過程中出現(xiàn)錯(cuò)誤,通常使用系統(tǒng)函數(shù)來判斷路徑的有效性。目錄操作常用的判斷函數(shù):4.6.1目錄操作函數(shù)功能is_dir(string$filename)判斷給定的名稱是否是目錄,是目錄返回true,不是目錄返回falsegetcwd()若成功會(huì)返回當(dāng)前目錄,失敗則返回falserewinddir(resource

$dir_handle)將打開的目錄句柄指針重置到目錄的開頭chdir(string

$directory)改變當(dāng)前的目錄,若成功會(huì)返回true,失敗則返回false4.刪除目錄rmdir()函數(shù)用于刪除目錄,該函數(shù)執(zhí)行成功返回true,執(zhí)行失敗返回false。4.6.1目錄操作語(yǔ)法格式boolrmdir(string$dirname[,resource$context])示例代碼rmdir('uploads');

先定一個(gè)小目標(biāo)!掌握文件操作,能夠使用函數(shù)對(duì)文件進(jìn)行打開、修改、讀取和寫入、刪除等操作。4.6.2文件操作1.打開文件打開文件使用fopen()函數(shù),該函數(shù)執(zhí)行成功返回資源類型的文件指針。語(yǔ)法格式resourcefopen(string$filename,string$mode[,bool$use_include_path=false[,resource$context]])$filename表示要打開的文件的路徑,可以是本地文件、HTTP、HTTPS或FTP的URL地址$mode表示文件打開的模式4.6.2文件操作常用的文件打開模式:4.6.2文件操作模式說明r只讀方式打開,將文件指針指向文件頭r+讀寫方式打開,將文件指針指向文件頭w寫入方式打開,將文件大小截為零,并從文件開頭寫入數(shù)據(jù)w+讀寫方式打開,將文件大小截為零,并從文件開頭讀寫數(shù)據(jù)a寫入方式打開,將文件指針指向末尾a+讀寫方式打開,將文件指針指向末尾x創(chuàng)建并以寫入方式打開,將文件指針指向文件頭。x+創(chuàng)建并以讀寫方式打開,其他行為和“x”相同演示fopen()函數(shù)的使用方法:示例代碼$f1=fopen('test1.html','r');$f2=fopen('test2.html','w');第1行代碼以只讀方式打開文件第2行代碼以寫入方式打開文件4.6.2文件操作2.修改文件修改文件包括修改文件的名稱和修改文件的內(nèi)容,修改文件的名稱使用rename()函數(shù)實(shí)現(xiàn),主要講解使用fwrite()函數(shù)修改文件的內(nèi)容。語(yǔ)法格式intfwrite(resource$handle,string$string[,int$length])$handle表示文件指針;$string表示要寫入的字符串$length表示指定寫入的字節(jié)數(shù),如果省略,表示寫入整個(gè)字符串4.6.2文件操作演示fwrite()函數(shù)的使用方法:示例代碼$f3=fopen('test3.html','w');fwrite($f3,'<html><body>Helloworld<body></html>');fclose($f3);4.6.2文件操作3.讀取文件使用fopen()函數(shù)打開文件后,可通過fread()函數(shù)進(jìn)行文件讀取操作,讀取到文件末尾時(shí)就會(huì)停止讀取,并返回讀取的內(nèi)容,讀取失敗返回false。語(yǔ)法格式stringfread(resource$handle,int$length)$handle表示文件指針$length用于指定讀取的字節(jié)數(shù)4.6.2文件操作演示fread()函數(shù)的使用方法:示例代碼$filename='test3.html';$f3=fopen($filename,'r');$data=fread($f3,filesize($filename));echo$data;//輸出內(nèi)容:<html><body>Helloworld<body></html>fclose($f3);4.6.2文件操作4.讀取和寫入文件內(nèi)容file_get_contents()函數(shù)用于將文件的內(nèi)容全部讀取到一個(gè)字符串中。語(yǔ)法格式stringfile_get_contents(string$filename[,bool$use_include_path=false[,resource$context[,int$offset=0[,int$maxlen]]]])4.6.2文件操作4.讀取和寫入文件內(nèi)容file_put_contents()函數(shù)用于在文件中寫入內(nèi)容,該函數(shù)執(zhí)行成功返回寫入到文件內(nèi)數(shù)據(jù)的字節(jié)數(shù),執(zhí)行失敗返回false。語(yǔ)法格式intfile_put_contents(string$filename,mix$data[,int$flags=0[,resource$context]])$filename指定要寫入的文件的路徑$data指定要寫入的內(nèi)容$flags指定寫入選項(xiàng),通常使用常量FILE_APPEND表示追加寫入4.6.2文件操作演示file_get_contents()函數(shù)和file_put_contents()函數(shù)的使用方法:示例代碼$filename='test3.html';$content=file_get_contents($filename);echo$content;//輸出內(nèi)容:<html><body>Helloworld<body></html>//文件內(nèi)容不會(huì)改變,默認(rèn)覆蓋原文件內(nèi)容$str='<html><body>Helloworld<body></html>';file_put_contents($filename,$str);//追加內(nèi)容file_put_contents($filename,$str,FILE_APPEND);4.6.2文件操作5.刪除文件使用unlink()函數(shù)刪除文件,該函數(shù)執(zhí)行成功返回true,執(zhí)行失敗返回false。語(yǔ)法格式boolunlink(string$filename[,resource$context])示例代碼unlink('./test2.html');4.6.2文件操作

先定一個(gè)小目標(biāo)!掌握目錄和文件的操作,能夠根據(jù)需求實(shí)現(xiàn)遞歸遍歷目錄。4.6.3【案例】遞歸遍歷目錄遞歸遍歷目錄是一種常見的操作,可以獲取指定目錄下的文件和子目錄,以及子目錄中的文件和子目錄。要求使用遞歸遍歷目錄,獲取目錄下的文件列表。

案例需求4.6.3【案例】遞歸遍歷目錄①創(chuàng)建自定義函數(shù),函數(shù)的參數(shù)是目錄地址。②在函數(shù)體內(nèi)判斷函數(shù)的參數(shù)是否是目錄,如果不是目錄,停止遍歷。③如果是目錄,獲取該目錄內(nèi)的所有文件,對(duì)獲取的結(jié)果進(jìn)行判斷,如果獲取的結(jié)果是一個(gè)目錄,則再次調(diào)用函數(shù),直到獲取到的內(nèi)容全部是文件為止。

實(shí)現(xiàn)思路4.6.3【案例】遞歸遍歷目錄

先定一個(gè)小目標(biāo)!掌握文件上傳的實(shí)現(xiàn)方法,能夠在程序中實(shí)現(xiàn)文件上傳。4.6.4單文件上傳<form>標(biāo)簽設(shè)置enctype屬性用于指定表單數(shù)據(jù)的編碼方式,默認(rèn)值為application/x-www-form-urlencoded,如果要實(shí)現(xiàn)文件上傳將其設(shè)置為multipart/form-data。示例代碼<formaction="表單提交地址"method="POST"enctype="multipart/form-data"><inputtype="file"name="file"><inputtype="submit"value="上傳"></form>4.6.4單文件上傳使用$_FILES超全局變量獲取上傳的文件信息,$_FILES數(shù)組中保存了文件的6個(gè)信息:name:上傳文件的原名稱。type:文件的MIME類型,如image/gif。size:上傳文件的大小,單位為字節(jié)。tmp_name:文件被上傳后存儲(chǔ)在服務(wù)器端的臨時(shí)文件名,一般為系統(tǒng)默認(rèn)名,可以在php.ini的upload_tmp_dir中指定。full_path:瀏覽器提交的完整路徑。該值并不總是包含真實(shí)的目錄結(jié)構(gòu),因此不能被信任。error:文件上傳相關(guān)的錯(cuò)誤代碼。4.6.4單文件上傳文件上傳相關(guān)的錯(cuò)誤代碼:4.6.4單文件上傳代碼常量說明0UPLOAD_ERR_OK沒有錯(cuò)誤發(fā)生,文件上傳成功1UPLOAD_ERR_INI_SIZE上傳的文件超過了php.ini中upload_max_filesize限制的值2UPLOAD_ERR_FORM_SIZE上傳的文件大小超過了表單中MAX_FILE_SIZE選項(xiàng)指定的值3UPLOAD_ERR_PARTIAL只有部分文件被上傳4UPLOAD_ERR_NO_FILE沒有文件被上傳6UPLOAD_ERR_NO_TMP_DIR找不到臨時(shí)目錄7UPLOAD_ERR_CANT_WRITE文件寫入失敗上傳文件保存在臨時(shí)目錄,保存期限為PHP腳本的執(zhí)行周期,PHP腳本執(zhí)行結(jié)束文件會(huì)釋放。如果將文件永久保存,使用PHP提供的move_uploaded_file()函數(shù)將文件保存到指定目錄。將文件從臨時(shí)目錄保存到指定目錄的示例代碼:if(isset($_FILES['upload'])){if($_FILES['upload']['error']!==UPLOAD_ERR_OK){exit('上傳失?。?);}$save='./uploads/'.time().'.dat';if(!move_uploaded_file($_FILES['upload']['tmp_name'],$save)){exit('上傳失敗,無法將文件保存到指定位置!');}echo'上傳成功!';}4.6.4單文件上傳

先定一個(gè)小目標(biāo)!掌握多文件上傳的方法,能夠?qū)崿F(xiàn)一次性上傳多個(gè)文件。4.6.5多文件上傳多文件上傳是指一次性上傳多個(gè)文件,上傳的文件屬于同一類文件,示例代碼如下:<formaction="表單提交地址"method="post"enctype="multipart/form-data">

個(gè)人相冊(cè):

<inputtype=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論