PHP程序設(shè)計(高職)全套教學(xué)課件_第1頁
PHP程序設(shè)計(高職)全套教學(xué)課件_第2頁
PHP程序設(shè)計(高職)全套教學(xué)課件_第3頁
PHP程序設(shè)計(高職)全套教學(xué)課件_第4頁
PHP程序設(shè)計(高職)全套教學(xué)課件_第5頁
已閱讀5頁,還剩363頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PHP入門與環(huán)境搭建第一章PHP程序設(shè)計【ch01】PHP入門與環(huán)境搭建.pptx【ch02】PHP開發(fā)基礎(chǔ).pptx【ch03】運算符和表達式.pptx【ch04】流程控制語句.pptx【ch05】函數(shù).pptx【ch06】數(shù)組與數(shù)據(jù)結(jié)構(gòu).pptx【ch07】PHP與Web的頁面交互.pptx【ch08】字符串處理.pptx【ch09】MySQL數(shù)據(jù)庫.pptx【ch10】PHP操作MySQL數(shù)據(jù)庫.pptx【ch11】PHP會話控制.pptx【ch12】面向?qū)ο缶幊?pptx【ch13】正則表達式.pptx全套可編輯PPT課件01PHP概述什么是PHPPHP(HypertextPreprocessor,超文本預(yù)處理器)是一種運行服務(wù)器端的、被廣泛應(yīng)用的、開放源代碼的多用途腳本語言。在融合了現(xiàn)代編程語言的一些最佳特性后,PHP、Apache和MySQL的組合已經(jīng)成為Web服務(wù)器的一種配置標準。PHP概述在學(xué)習(xí)PHP之前,需要對HTML、CSS和JavaScript有一定的了解。因為PHP文件可包含多種編程語言代碼,PHP文件的后綴名默認為“.php”。PHP概述PHP的發(fā)展PHP是在1994年由RasmusLerdorf創(chuàng)建的,并于1995年對外發(fā)布了第一個版本PersonalHomePageTools(PHPTools)。在這個早期的版本中,提供了訪客留言本、訪客計數(shù)器等管單的功能。隨后在新的成員加入開發(fā)行列之后,第二版的PHP問市。PHP概述PHP的發(fā)展時間如表1-1所示。PHP概述開源。所有人都可以看到源代碼,開源代碼具有較強的可靠性和安全性。面向?qū)ο?。具有所有面向?qū)ο蟮奶攸c。PHP的優(yōu)勢易學(xué)。它的語法融合了C語言、Java語言和Perl語言的特點??缙脚_。PHP可以支持所有的服務(wù)器操作系統(tǒng)。PHP概述01免費。03速度快。02PHP可以同時使用多個數(shù)據(jù)庫,PHP和MySQL搭配最佳。PHP概述PHP的用途PHP可以生成動態(tài)頁面內(nèi)容。PHP可以創(chuàng)建、打開、讀取、寫入、關(guān)閉服務(wù)器上的文件。PHP可以收集表單數(shù)據(jù)。PHP可以發(fā)送和接收Cookies。PHP概述PHP可以限制用戶訪問網(wǎng)站上的某一些頁面。PHP可以不再受限于只輸出HTML。PHP可以添加、刪除、修改數(shù)據(jù)庫中的數(shù)據(jù)。PHP可以加密數(shù)據(jù)。PHP概述02Web的工作原理情景1:無PHP預(yù)處理器和數(shù)據(jù)庫的服務(wù)器有一個Web網(wǎng)站服務(wù)器,服務(wù)器軟件是Apache,主機為www.zzdlcom,使用默認端口80。網(wǎng)頁文件(index.html)的存放目錄為Apache服務(wù)器的根目錄。Web的工作原理顯示出圖文并茂的頁面給用戶,如圖1-2所示。Web的工作原理情景2:帶PHP預(yù)處理器的Web服務(wù)器當(dāng)用戶向服務(wù)器請求一個腳本程序(如PHP文件)時,因為Web服務(wù)器本身是不能解析這個腳本程序的,那么服務(wù)器除了要安裝Web服務(wù)器(Apache服務(wù)器)之外。還要安裝可以解析腳本程序的應(yīng)用程序服務(wù)器軟件(如PHP預(yù)處理器),用戶就可以在服務(wù)器端使用PHP預(yù)處理器來解析PHP程序了。Web的工作原理輸出圖形用戶界面,如圖1-3所示。Web的工作原理情景3:瀏覽器訪問服務(wù)器端的數(shù)據(jù)庫如果網(wǎng)站運行過程中的相關(guān)數(shù)據(jù)需要保存在服務(wù)器端的數(shù)據(jù)庫中,則還需要為服務(wù)器安裝數(shù)據(jù)庫管理系統(tǒng)。MySQL服務(wù)器和Apache服務(wù)器既可以安裝在同一臺計算機上,也可以分開來安裝。Web的工作原理輸出到客戶端瀏覽器,如圖1-4所示。Web的工作原理03PHP開發(fā)環(huán)境構(gòu)建“LAMP”組合是由四個技術(shù)名稱的英文首字母組成的,這四個技術(shù)名稱分別是Linux操作系統(tǒng)、Apache網(wǎng)頁服務(wù)器、MySQL數(shù)據(jù)庫管理系統(tǒng)和PHP程序模塊。它們共同組成了一個強大的Web應(yīng)用程序平臺。PHP開發(fā)環(huán)境構(gòu)建如果是剛剛開始學(xué)習(xí)PHP的新手,可以選擇Windows作為服務(wù)器操作系統(tǒng)。同時可以選擇本章介紹的集成化安裝包進行安裝,快速搭建可供學(xué)習(xí)的PHP工作環(huán)境。PHP開發(fā)環(huán)境構(gòu)建PHP開發(fā)環(huán)境的安裝安裝前的準備工作PHP開發(fā)環(huán)境構(gòu)建服務(wù)器的啟動與停止XAMPP軟件啟動后的界面如圖1-13所示。PHP開發(fā)環(huán)境構(gòu)建啟動Apache服務(wù)器和MySQL服務(wù)器的效果如圖1-14所示。PHP開發(fā)環(huán)境構(gòu)建PHP開發(fā)環(huán)境的關(guān)鍵配置修改Apache服務(wù)端口號:XAMPP安裝完成后,Apache服務(wù)端口號默認為80。設(shè)置Apache服務(wù)器主目錄:XAMPP安裝完成后,瀏覽器在默認情況下訪問的是“D:/xampp/htdocs”目錄下的文件此目錄被稱為Apache服務(wù)器的主目錄。PHP開發(fā)環(huán)境構(gòu)建04第一個PHP程序【例1-1】啟動HBuilder,依次選擇“文件”→“打開目錄”菜單命令,如圖1-21所示。第一個PHP程序按下Enter鍵后即可查看index.php文件的運行結(jié)果,如圖1-28所示。第一個PHP程序感謝觀看PHP開發(fā)基礎(chǔ)第二章PHP程序設(shè)計01PHP基本語法PHP標記符在很多情況下,PHP代碼都是跟HTML代碼混雜在一起的。為了使Web服務(wù)器能夠識別PHP代碼,需要將PHP代碼放到特殊的標記符內(nèi)。PHP基本語法PHP代碼的開始標記符和結(jié)束標記符用于告訴Web服務(wù)器,PHP代碼何時開始和結(jié)束,兩個標記符之間的所有內(nèi)容都會被解釋為PHP代碼。而標記符之外的任何內(nèi)容都會被認為是普通的HTML代碼,這就是PHP標記符的作用。PHP基本語法PHP注釋注釋在寫代碼的過程中非常重要,PHP注釋可以理解為代碼的解釋和說明。一般添加到代碼的上方或代碼的尾部。PHP基本語法使用注釋不僅能夠提高程序的可讀性,而且有利于開發(fā)人員之間的溝通和程序的后期維護。在執(zhí)行代碼時,注釋會被解釋器忽略,因此注釋不會影響程序的執(zhí)行。PHP基本語法PHP語句和語句塊PHP程序由一條或多條PHP語句構(gòu)成,每條語都以英文狀態(tài)的分號“.”結(jié)束。在寫PHP代碼的時候,一條PHP語句一般占用一行。PHP基本語法雖然一行寫多條語句或者一條語句占多行是沒有語法錯誤的,但是會使代碼的可讀性變差,所以不推薦這樣做。語句塊也稱符合語句。如果多條PHP語句之間存在著某種聯(lián)系,可以使用“{”和“}”將這些PHP語句包起來形成一個語句塊。PHP基本語法02PHP數(shù)據(jù)類型在程序開發(fā)過程中,經(jīng)常需要操作數(shù)據(jù)。每一個數(shù)據(jù)都有各自的數(shù)據(jù)類型,最終運算時操作的數(shù)據(jù)必須是同一種類型的。PHP的數(shù)據(jù)類型可以分成三大類,即標量數(shù)據(jù)類型、復(fù)合數(shù)據(jù)類型和特殊數(shù)據(jù)類型。PHP數(shù)據(jù)類型標量數(shù)據(jù)類型PHP中的標量數(shù)據(jù)類型包括4種,如表2-1所示。PHP數(shù)據(jù)類型復(fù)合數(shù)據(jù)類型復(fù)合數(shù)據(jù)類型可將多個簡單數(shù)據(jù)類型組合在一起。并存儲在一個變量中,其包括2種類型(數(shù)組和對象)。PHP數(shù)據(jù)類型復(fù)合數(shù)據(jù)類型,如表2-2所示。PHP數(shù)據(jù)類型特殊數(shù)據(jù)類型特殊數(shù)據(jù)類型包括兩種:資源和空值,如表2-3所示。PHP數(shù)據(jù)類型資源(resource)是一種特殊數(shù)據(jù)類型,由專門的函數(shù)來建立和使用??罩担╪ull)表示沒有為該變量設(shè)置任何值。PHP數(shù)據(jù)類型檢測數(shù)據(jù)類型PHP還內(nèi)置了檢測數(shù)據(jù)類型的函數(shù),可以對不同類型的數(shù)據(jù)進行檢測。判斷其是否屬于某個數(shù)據(jù)類型。PHP數(shù)據(jù)類型檢測數(shù)據(jù)類型的函數(shù)如表2-4所示。PHP數(shù)據(jù)類型03PHP數(shù)據(jù)的輸出在PHP中,幾乎每個程序都需要輸出,因此程序的運行結(jié)果才能被用戶看到。輸出數(shù)據(jù)的方法有很多,下面分別對輸出方法和輸出運算符進行介紹。PHP數(shù)據(jù)的輸出四種輸出方法echo:echo的作用是向瀏覽器輸出一個或多個數(shù)據(jù),多個數(shù)據(jù)之間用逗號隔開。print:print的作用與echo一樣,但是只能向瀏覽器輸出一個數(shù)據(jù),而且運行速度比echo稍慢。PHP數(shù)據(jù)的輸出print_r():print_r()是一個函數(shù),它可以輸出各種類型的數(shù)據(jù)。var_dump():var_dump()也是一個函數(shù),其功能與print_r()函數(shù)類似,但是它不僅可以輸出數(shù)據(jù),還可以輸出數(shù)據(jù)的結(jié)構(gòu)化信息,包括數(shù)據(jù)類型、長度等PHP數(shù)據(jù)的輸出輸出運算符(<?=?>)如果在某些情況下,只需在HTML代碼中嵌入一條PHP輸出語句。則可以使用PHP提供的另一種便捷的方法來輸出數(shù)據(jù),即使用輸出運算符“<?=?>”。PHP數(shù)據(jù)的輸出輸出運算符的功能與echo的功能一樣。例如,將頁面的背景顏色設(shè)置為某種顏色。為了增加程序的靈活性,可以設(shè)置一個表示顏色的變量$color。PHP數(shù)據(jù)的輸出04PHP編碼規(guī)范什么是編碼規(guī)范以PHP開發(fā)為例,編碼規(guī)范就是融合開發(fā)人員長時間積累下來的經(jīng)驗。形成了一種良好統(tǒng)一的編程風(fēng)格,這種良好、統(tǒng)一的編程風(fēng)格會在團隊開發(fā)或二次開發(fā)時起到事半功倍的效果。PHP編碼規(guī)范編碼規(guī)范是一種總結(jié)性的說明和介紹,并不是強制性的規(guī)則。但是從項目長遠的發(fā)展及團隊的效率來考慮,遵守編碼規(guī)范是十分必要的。PHP編碼規(guī)范提高了程序的可讀性,有利于相關(guān)開發(fā)人員交流,大大提高軟件質(zhì)量。有利于團隊管理,實現(xiàn)團隊后備資源的可重用。編碼規(guī)范是對團隊開發(fā)成員的基本要求,有助于開發(fā)人員養(yǎng)成良好的習(xí)慣。有助于程序的維護,降低軟件成本。PHP編碼規(guī)范PHP編碼規(guī)范指令分隔符(;):在PHP程序中,執(zhí)行某些特定功能的語句也稱指令,每一個PHP指令都是以英文分號“;”結(jié)尾的,此規(guī)范用于告訴PHP要執(zhí)行此語句。PHP代碼片段的最后一行,即PHP的結(jié)束標記符前可以不用分號表示結(jié)束。PHP編碼規(guī)范PHP命名規(guī)則通常,應(yīng)該讓代碼閱讀者輕松地從類、函數(shù)和變量的名字中知道代碼的作用。因此要避免使用模棱兩可的命名。PHP編碼規(guī)范感謝觀看運算符和表達式第三章PHP程序設(shè)計01常量自定義常量define()函數(shù)的參數(shù)說明如表3-1所示。常量預(yù)定義常量預(yù)定義常量是PHP系統(tǒng)已經(jīng)定義過的,不需要用戶定義即可使用的一類常量??梢允褂妙A(yù)定義常量獲取PHP中的信息,但不能任意更改常量的值。常量02變量變量的概念變量是指在程序運行過程中隨時可以發(fā)生變化的量,是數(shù)據(jù)臨時存放場所。變量為開發(fā)人員提供了一個有名字的內(nèi)存存儲區(qū),在程序運行過程中,可以保存用戶輸入的數(shù)據(jù)、特定的運算結(jié)果,以及輸出的數(shù)據(jù)等。變量變量的命名和定義PHP是一種弱類型的語言,其類型可以根據(jù)環(huán)境變化進行自動轉(zhuǎn)換。并且不要求在使用變量之前進行聲明。PHP中的變量由“$”和標識符組成。變量變量的賦值方式使用賦值運算符“=”對變量進行賦值。PHP中提供了兩種變量的賦值方式:傳值賦值和引用賦值。變量可變變量可變變量是一種獨特的變量,變量的名稱并不是預(yù)先定義好的,而是動態(tài)地設(shè)置和使用的。變量可變變量一般是指使用一個變量的值作為另一個變量的名稱,所以可變變量又稱變量的變量。預(yù)定義變量預(yù)定義變量是PHP系統(tǒng)已經(jīng)定義過的變量,用戶可以直接使用這一類變量,而不需要自己定義。PHP提供了很多非常實用的預(yù)定義變量,通過這些預(yù)定義變量可以獲取用戶會話、用戶操作系統(tǒng)的環(huán)境和本地操作系統(tǒng)的環(huán)境等信息。變量03運算符算術(shù)運算符PHP中的算術(shù)運算符如表3-4所示。運算符字符串運算符字符串運算符只有一個,即英文的句號“.”,也被稱為連接運算符。它的功能是將兩個字符串連接起來,形成一個新的字符串。運算符賦值運算符PHP中的賦值運算符如表3-5所示。運算符位運算符PHP中的位運算符如表3-6所示。運算符遞增或遞減運算符在程序設(shè)計中,有一種常見的運算是對一個變量的變量值加1或減1,此時可以使用前面介紹的算術(shù)運算符(+、-)和復(fù)合賦值運算符(+=、-=)。PHP提供了另外兩個運算符來執(zhí)行遞增和遞減運算,即遞增運算符(++)和遞減運算符(--)。運算符邏輯運算符PHP中的邏輯運算符如表3-7所示。運算符比較運算符PHP中的比較運算符如表3-8所示。運算符條件運算符條件運算符可以提供簡單的邏輯判斷,它是PHP中唯一的三元運算符。其語法格式如下:表達式1?表達式2:表達式3運算符運算符優(yōu)先級運算符的優(yōu)先級,是指在程序中哪一個運算符先計算,哪一個后計算,與數(shù)學(xué)四則運算的“先乘除,后加減”是一樣的道理。PHP的運算符有不同的優(yōu)先級,在運算中遵循的規(guī)則是優(yōu)先級高的先進行運算,優(yōu)先級低的后進行運算,同一優(yōu)先級按照從左到右的順序進行。運算符04表達式將運算符和操作數(shù)連接起來的式子被稱為表達式,它是PHP的重要組成部分。根據(jù)運算符的不同,表達式可以分為算術(shù)表達式、字符串表達式、關(guān)系表達式、賦值表達式及邏輯表達式等。表達式05數(shù)據(jù)類型的轉(zhuǎn)換四種輸出方法在PHP中定義常量或變量時,不需要指定常量或變量數(shù)據(jù)類型。在不同類型數(shù)據(jù)的混合運算過程中,PHP會根據(jù)需要將常量或變量轉(zhuǎn)換為合適的數(shù)據(jù)類型再進行運算,但是在轉(zhuǎn)換時也要遵循一定的規(guī)則。數(shù)據(jù)類型的轉(zhuǎn)換強制轉(zhuǎn)換PHP中允許轉(zhuǎn)換的類型如表3-10所示。數(shù)據(jù)類型的轉(zhuǎn)換感謝觀看流程控制語句第四章PHP程序設(shè)計01條件判斷語句單分支結(jié)構(gòu)if語句單分支結(jié)構(gòu)if語句是最簡單的條件判斷語句,它通過對某段程序附加一個條件來改變程序的執(zhí)行順序。如果條件成立就執(zhí)行這段程序,否則不執(zhí)行這段程序。條件判斷語句執(zhí)行單分支結(jié)構(gòu)if語的流程如圖4-1所示。條件判斷語句雙分支結(jié)構(gòu)if-else語句有時需要在滿足某個條件的情況下執(zhí)行若干條語句,而在不滿足該條件時執(zhí)行其他語句。為此,if語句提供了else子句,else子句延伸了if語句的功能,可以在表達式為False的時候執(zhí)行語句塊2。條件判斷語句執(zhí)行雙分支結(jié)構(gòu)if-else語句的流程如圖4-3所示。條件判斷語句多分支結(jié)構(gòu)if-elseif語句使用if語句和else子句能夠描述一些相對復(fù)雜的邏輯問題,但是if-else語句只能執(zhí)行兩種判斷操作,要么執(zhí)行表達式為真的操作,要么執(zhí)行表達式為假的操作。如果出現(xiàn)兩種以上的選擇該怎么辦呢?因此,有時侯單分支結(jié)構(gòu)和雙分支結(jié)構(gòu)并不能表達完整的語義。條件判斷語句執(zhí)行多分支結(jié)構(gòu)if-elseif語句的流程如圖4-5所示。條件判斷語句多分支結(jié)構(gòu)switch語句switch語句和if-elseif語句很相似,也是一種多分支結(jié)構(gòu)。不過,在用if-elseif語句時,常用布爾型的表達式作為條件進行分支控制,表達式需要在每一個elseif語句中計算一次,較為煩瑣。條件判斷語句switch語的語法結(jié)構(gòu)如下所示。條件判斷語句02循環(huán)控制語句在實際的程序設(shè)計中,會經(jīng)常遇到一些需要重復(fù)處理的問題。顯然,如果用順序結(jié)構(gòu)會使代碼存在很多重復(fù)的部分,以致非常冗長。循環(huán)結(jié)構(gòu)可以減少重復(fù)書寫源程序的工作量,它可以用來描述重復(fù)執(zhí)行的某段算法,這是程序設(shè)計中最能發(fā)揮計算機特長的程序結(jié)構(gòu)。循環(huán)控制語句while循環(huán)語句while循環(huán)語句是PHP中最簡單的循環(huán)控制語句。其特點是,當(dāng)給定的條件成立時,則反復(fù)執(zhí)行某段程序,直到條件不成立為止。給定的條件被稱為循環(huán)條件,反復(fù)執(zhí)行的程序被稱為循環(huán)體。循環(huán)控制語句do-while循環(huán)語句do-while循環(huán)語句與while循環(huán)語句非常相似,但是do-while循環(huán)語句是先執(zhí)行循環(huán)體中的語句塊,再判斷表達式是否成立。do-while循環(huán)語句的語法格式如下。循環(huán)控制語句執(zhí)行程序時,先執(zhí)行語句塊,然后判斷表達式的值的真和假,如果表達式的值為真(True)則繼續(xù)執(zhí)行語句塊。如果表達式的值為假(False),則結(jié)束do-while循環(huán)語句。因此,使用do-while循環(huán)語句時,循環(huán)體內(nèi)的語句塊至少被執(zhí)行一次。循環(huán)控制語句for循環(huán)語句for循環(huán)語句是PHP中最復(fù)雜的循環(huán)結(jié)構(gòu)語句。前面講過的while循環(huán)語與do-while循環(huán)語句是用于特定條件下的循環(huán)語句。循環(huán)控制語句執(zhí)行for循環(huán)語句的流程圖如圖4-13所示。循環(huán)控制語句循環(huán)結(jié)構(gòu)的應(yīng)用用for循環(huán)語句編寫程序,將九九乘法表打印在表格中,代碼如下。循環(huán)控制語句運行結(jié)果如圖4-14所示。循環(huán)控制語句03特殊的流程控制語句break語句break語句可以結(jié)束當(dāng)前的while、do-while、for、foreach(在數(shù)組中使用)和switch等的所有控制語句。其實,前面的switch語句中已經(jīng)使用過break語句了。在循環(huán)結(jié)構(gòu)中,break語句不僅可以跳出當(dāng)前循環(huán),還可以指定跳出幾重循環(huán)。特殊的流程控制語句運行結(jié)果如圖4-15所示。特殊的流程控制語句continue語句continue語句的作用是終止本次循環(huán),然后進入下一次的循環(huán)中。continue語句也可以指定跳出幾重循環(huán),繼續(xù)執(zhí)行下一次循環(huán)。特殊的流程控制語句運行結(jié)果如圖4-17所示。特殊的流程控制語句exit語句exit語句的作用是終止當(dāng)前整個PHP程序的執(zhí)行。執(zhí)行exit語句后,所有的PHP代碼都不會再被執(zhí)行。特殊的流程控制語句運行結(jié)果如圖4-19所示。特殊的流程控制語句感謝觀看函數(shù)第五章PHP程序設(shè)計01函數(shù)簡介什么是函數(shù)函數(shù)是一個被命名的、獨立的代碼片段,它用來執(zhí)行特定的任務(wù),并能給調(diào)用它的程序返回一個值。函數(shù)將PHP程序中煩瑣的代碼模塊化,使程序員無須頻繁地編寫相同的代碼,只要直接調(diào)用函數(shù)即可實現(xiàn)指定的功能。函數(shù)簡介函數(shù)的分類PHP中的函數(shù)可以分為2種:系統(tǒng)內(nèi)置函數(shù)和自定義函數(shù)。系統(tǒng)內(nèi)置函數(shù)是PHP內(nèi)部已經(jīng)預(yù)定義好的函數(shù),自定義函數(shù)是程序員根據(jù)實際需要編寫的一段代碼。函數(shù)簡介02自定義函數(shù)自定義函數(shù)的定義定義自定義函數(shù)的基本語法格式如下。自定義函數(shù)自定義函數(shù)的調(diào)用只有函數(shù)完成定義,在調(diào)用這個函數(shù)時才能執(zhí)行該函數(shù)。調(diào)用函數(shù)的操作十分簡單,只需要引用函數(shù)名并賦予正確的參數(shù)即可。自定義函數(shù)自定義函數(shù)的參數(shù)調(diào)用自定義函數(shù)時,在PHP腳本程序中的被調(diào)用函數(shù)之間有數(shù)據(jù)傳遞關(guān)系,傳入函數(shù)的參數(shù)被稱為實參,而函數(shù)中定義的參數(shù)被稱為形參。參數(shù)的傳遞方式有按值傳遞方式、按引用傳遞方式和默認參數(shù)方式3種。自定義函數(shù)自定義函數(shù)的返回值通常,自定義函數(shù)使用關(guān)鍵字return將返回值傳遞函數(shù)調(diào)用者,return語句可省略的。需要注意的是,如果在全局作用域內(nèi)使用retumn語句,那么將終止腳本的執(zhí)行。return后緊跟要返回的值,可以是變量、常量、數(shù)組或表達式等。自定義函數(shù)變量的作用域變量作用域的說明如表5-1所示。自定義函數(shù)03PHP文件的引用include語句使用include語句引用外部文件時,只有代碼執(zhí)行到include語句時才會將外部文件引用進來,并讀取文件的內(nèi)容。當(dāng)所引用的外部文件發(fā)生錯誤時,系統(tǒng)只給出一個警告提示,而整個PHP文件則繼續(xù)向下執(zhí)行。PHP文件的引用require語句require語句的使用方法與include語句類似,都是實現(xiàn)對外部文件的引用。在PHP文件被執(zhí)行之前,PHP解析器會用被引用的文件的全部內(nèi)容替換require語句,然后與require語句之外的其他語句組成新的PHP文件,最后按新的PHP文件執(zhí)行程序代碼。PHP文件的引用對比include語句和require語句通過上面兩個例子能夠發(fā)現(xiàn):使用require語句引用文件的方法和使用include語句引用文件的方法非常相似。PHP文件的引用include_once語句require_once語句在文件導(dǎo)入前,include_once語和require_once語會檢測該導(dǎo)入文件是否已經(jīng)在該頁面的其他部分被引用。若該文件已經(jīng)被引用,則不會再引用該文件,程序只會引用一次,而第二次引用的語句不會被執(zhí)行。PHP文件的引用04數(shù)字操作函數(shù)極值函數(shù)如果僅有一個參數(shù)且該參數(shù)為數(shù)組,則用極值函數(shù)可返回該數(shù)組中的極值。如果第一個參數(shù)是整數(shù)、字符串或浮點數(shù),則至少需要兩個參數(shù)才能返回其中的極值。數(shù)字操作函數(shù)取整函數(shù)常用的取整函數(shù)如表5-3所示。數(shù)字操作函數(shù)取余函數(shù)此函數(shù)類似于算術(shù)運算符“%”。常用的取余函數(shù)如表5-4所示。數(shù)字操作函數(shù)隨機數(shù)函數(shù)常用的隨機數(shù)函數(shù)如表5-5所示。數(shù)字操作函數(shù)絕對值函數(shù)常用的絕對值函數(shù)如表5-6所示。數(shù)字操作函數(shù)冪運算函數(shù)常用的冪運算函數(shù)如表5-7所示。數(shù)字操作函數(shù)05時間和日期操作函數(shù)設(shè)置系統(tǒng)時區(qū)的函數(shù)運行結(jié)果如圖5-17所示。時間和日期操作函數(shù)獲取時間戳的函數(shù)運行結(jié)果如圖5-18所示。時間和日期操作函數(shù)將時間戳轉(zhuǎn)換成日期和時間的函數(shù)在PHP中,使用date()函數(shù)可以獲取指定時間戳的日期和時間。時間和日期操作函數(shù)其中,timestamp為可選參數(shù),若省略則表示使用本地時間的當(dāng)前值。format是必選參數(shù)用來設(shè)置輸出的日期(字符串類型)的格式。感謝觀看數(shù)組與數(shù)據(jù)結(jié)構(gòu)第六章PHP程序設(shè)計01數(shù)組的分類數(shù)組的本質(zhì)是存儲、管理和操作一組變量。數(shù)組是PHP提供的多種數(shù)據(jù)類型中的一種屬于復(fù)合數(shù)據(jù)類型。在前面介紹了標量變量,一個標量變量就是一個用來存儲數(shù)值的命名區(qū)域。數(shù)組的分類同樣,數(shù)組是一個用來存儲一系列變量值的命名區(qū)域。因此,可以使用數(shù)組組織多個變量。對數(shù)組的操作,也就是對數(shù)組的基本組成部分的操作。數(shù)組的分類在學(xué)習(xí)PHP的數(shù)組時會感覺有些復(fù)雜,但其功能卻比其他高級語言的數(shù)組更強大。和其他語言不一樣的是,它可以將多種類型的變量組織在同一個數(shù)組中,并且PHP數(shù)組的存儲容量還可以根據(jù)元素個數(shù)的增減自動調(diào)整。數(shù)組的分類PHP還可以使用數(shù)組完成其他強數(shù)據(jù)類型編程語言中的數(shù)據(jù)結(jié)構(gòu)的功能。如C語言中的鏈表、堆、棧、隊列,以及Java中的集合等,在PHP中都可以使用數(shù)組實現(xiàn)。數(shù)組的分類表6-1為個人信息列表,每一條記錄為一個聯(lián)系人信息。數(shù)組的分類如圖6-1所示,分別使用索引數(shù)組和關(guān)聯(lián)數(shù)組表示聯(lián)系人列表中的一條記錄,可以很清晰地看到左側(cè)的索引數(shù)組是一組有序的變量,下標只能是整型數(shù)據(jù),默認從0開始索引。數(shù)組的分類02數(shù)組的定義在PHP中定義數(shù)組非常靈活,與其他編程語言不同,PHP定義數(shù)組時不需要指定數(shù)組的大小,甚至不需要在使用數(shù)組前先行聲明就可以在同一個數(shù)組中存儲任何類型的數(shù)據(jù)。PHP支持一維數(shù)組和多維數(shù)組,可以由用戶創(chuàng)建,也可以由一些特定的數(shù)據(jù)庫處理函數(shù)從數(shù)據(jù)庫查詢中生成數(shù)組,以及使用一些其他函數(shù)返回數(shù)組。數(shù)組的定義在PHP中自定義數(shù)組可以使用以下兩種方法。02使用array()函數(shù)聲明數(shù)組。01直接為數(shù)組元素賦值即可聲明數(shù)組。數(shù)組的定義使用直接賦值的方式聲明數(shù)組只有一個索引值(下標)的數(shù)組被稱為一維數(shù)組,這是最簡單的一種數(shù)組,也是最常用的種數(shù)組。使用直接賦值的方式聲明一維數(shù)組的語法如下所示。S數(shù)組變量名[下標]=數(shù)組元素值

//其中索引值(下標)可以是一個字符串或一個整數(shù)數(shù)組的定義由于PHP的數(shù)組沒有大小限制,因此在為數(shù)組初始化時就一并對數(shù)組進行了聲明。在下例中聲明了兩個數(shù)組變量,數(shù)組變量名分別是person1和person2,再在變量名后面的方括號“[]”中分別使用數(shù)字聲明索引數(shù)組,使用字符串聲明關(guān)聯(lián)數(shù)組。數(shù)組的定義索引數(shù)組運行結(jié)果如圖6-2所示。數(shù)組的定義關(guān)聯(lián)數(shù)組運行結(jié)果如圖6-3所示。數(shù)組的定義運行結(jié)果如圖6-4所示。數(shù)組的定義以上代碼混合聲明了數(shù)組Sperson2,其下標為1、5、8,運行結(jié)果如圖6-5所示。數(shù)組的定義使用array()語句結(jié)構(gòu)新建數(shù)組初始化數(shù)組的另一種方法是使用array()語句結(jié)構(gòu)來新建一個數(shù)組。array()語句結(jié)構(gòu)接受一定數(shù)量的、用逗號分隔的“key=>value”參數(shù)對。數(shù)組的定義以上代碼混合聲明的數(shù)組Sperson1和前面直接賦值聲明的數(shù)組一樣,輸出結(jié)果如圖6-6所示。數(shù)組的定義多維數(shù)組的聲明數(shù)組是一個用來存儲一系列變量值的命名區(qū)域。在PHP中,數(shù)組可以存儲PHP支持的所有類型的數(shù)據(jù),包括在數(shù)組中存儲數(shù)組類型的數(shù)據(jù)。如果數(shù)組中的元素仍為數(shù)組,就構(gòu)成了包含數(shù)組的數(shù)組,即多維數(shù)組。數(shù)組的定義在表6-1中有3條記錄,可以將這3條記錄聲明成3個一維數(shù)組。對其中的一個一維數(shù)組進行處理,即對一條記錄進行操作。但如果記錄的數(shù)量比較多,就需要聲明多人一維數(shù)組。數(shù)組的定義運行結(jié)果如圖6-7所示。數(shù)組的定義03數(shù)組的遍歷使用for循環(huán)語句遍歷數(shù)組在其他編程語言中,數(shù)組的遍歷通常都使用for循環(huán)語??赏ㄟ^數(shù)組的下標來訪問數(shù)組的每個成員元素,但要求數(shù)組必須有連續(xù)的數(shù)字索引。數(shù)組的遍歷而在PHP中,不僅可以指定非連續(xù)的數(shù)字索引,而且還存在以字符串為下標的關(guān)聯(lián)數(shù)組。所以在PHP中很少使用for循環(huán)語句遍歷數(shù)組。數(shù)組的遍歷運行結(jié)果如圖6-8所示。數(shù)組的遍歷使用foreach語句遍歷數(shù)組由于使用for循環(huán)語句遍歷數(shù)組時有很多的局限性,所以很少使用。PHP4引入的foreach語句是為PHP數(shù)組設(shè)計的語句,和Perl及其他語言很像,是一種遍歷數(shù)組的簡便方法。數(shù)組的遍歷使用foreach語句遍歷數(shù)組與數(shù)組下標無關(guān),不管是連續(xù)的數(shù)字索引數(shù)組,還是以字符串為下標的關(guān)聯(lián)數(shù)組,都可以使用foreach語句遍歷。foreach語句只能用于數(shù)組,自PHP5起才可以遍歷對象。當(dāng)將其用于其他數(shù)據(jù)類型或者一個未初始化的變量時會產(chǎn)生錯誤。數(shù)組的遍歷感謝觀看PHP與Web的頁面交互第七章PHP程序設(shè)計01解析PHP的執(zhí)行過程什么是函數(shù)PHP是一種運行在服務(wù)器端的語言,可以被嵌入到HTML中。其中,HTML只能提供靜態(tài)的數(shù)據(jù),而PHP則可以提供動態(tài)的數(shù)據(jù)。解析PHP的執(zhí)行過程02Web表單表單標簽<form></form>標簽的屬性及其作用如表7-1所示。Web表單表單元素表單元素是指在表單中的一些元素標簽,這些元素用于提供用戶輸入數(shù)據(jù)的可視化界面。單行文本輸入框(text):text屬性值一般用來定義表單單行文本輸入框,可以輸入任何類型的文本、數(shù)字或字母并且只能單行顯示。函數(shù)簡介使用數(shù)組提交表單數(shù)據(jù)在一個網(wǎng)頁中有時并不知道某個表單元素的具體個數(shù),如果在選擇復(fù)選框的選項時不能確定用戶選擇了哪幾項,這時就需要使用數(shù)組命名的方式來解決這個問題。使用數(shù)組的命名方式就是在表單元素的name屬性值后面加方括號“[]”。當(dāng)提交表單數(shù)據(jù)時,相同name屬性的表單元素就會以數(shù)組的方式向Web服務(wù)器提交多個數(shù)據(jù)。自定義函數(shù)表單綜合應(yīng)用使用表單輸入用戶的個人信息,并用POST傳輸方法使數(shù)據(jù)提交到action制定的地址中。表單元素一般都有name屬性和type屬性,type屬性可以指定不同的表單元素。自定義函數(shù)03表單數(shù)據(jù)的提交使用GET方法提交表單數(shù)據(jù)運行結(jié)果如圖7-6所示。表單數(shù)據(jù)的提交使用POST方法提交表單數(shù)據(jù)POST方法提交表單數(shù)據(jù)不依賴URL,不會將傳遞的信息顯示在地址欄中。并且對傳輸?shù)臄?shù)據(jù)量沒有限制,提交的信息在后臺傳輸,用戶在瀏覽器端看不到傳輸過程,安全性較高。自定義函數(shù)01POST方法與GET方法的區(qū)別GET方法是從服務(wù)器上獲取數(shù)據(jù),POST方法是向服務(wù)器傳送數(shù)據(jù)。03對于GET方法,服務(wù)器端用Request.QueryString獲取變量的值。02GET方法是把參數(shù)數(shù)據(jù)隊列加到提交表單的action屬性所指的URL中,值和表單內(nèi)的各個字段一一對應(yīng)。GET方法傳送的數(shù)據(jù)量較小,不能大于2KB。POST方法傳送的數(shù)據(jù)量較大,一般默認不受限制。GET方法安全性非常低,POST方法安全性較高,但是GET方法執(zhí)行效率卻比POST方法高。04應(yīng)用PHP全局變量獲得表單數(shù)據(jù)$_POST[]全局變量預(yù)定義的$_POST[]全局變量可用于收集來自“method="post””的表單中的值。通過$_POST[]全局變量獲取表單數(shù)據(jù),實際上就是獲取不同的表單元素數(shù)據(jù),并以數(shù)組的形式存儲。應(yīng)用PHP全局變量獲得表單數(shù)據(jù)$_GET[]全局變量運行結(jié)果如圖7-9所示。Web表單05文件上傳上傳文件相關(guān)配置PHP通過php.ini文件對上傳文件進行控制,包括是否支持上傳、上傳文件的臨時目錄、上傳文件的大小、指令執(zhí)行的時間、指令分配的內(nèi)存空間。在php.ini中定位到“FileUploads”處,完成對上傳相關(guān)選項的設(shè)置。文件上傳$_FILES全局變量下面介紹$_FILES數(shù)組中每個元素的含義,如表7-2所示。Web表單實現(xiàn)PHP文件上傳PHP中應(yīng)用move_uploaded_file()函數(shù)實現(xiàn)文件上傳。但是,在上傳文件之前,為了防止?jié)撛诘墓魧υ静荒芡ㄟ^腳本交瓦的文件進行非法管理,可以先應(yīng)用is_uploaded_fle()函數(shù)判斷指定的文件是否是通過HTTPPOST上傳的,如果是則返回True,并可以繼續(xù)執(zhí)行文件的上傳操作,否則將不能繼續(xù)執(zhí)行。PHP文件的引用06服務(wù)器獲取數(shù)據(jù)的其他方法$_REOUEST[]全局變量可以用$_REOUEST[]全局變量獲取GET方法、POST方法和HTTPCookie傳遞到腳本的信息。如果在編寫程序時不能確定通過什么方法提交數(shù)據(jù),則可以通過$_REOUEST[]全局變量獲取提交到當(dāng)前頁面的數(shù)據(jù)。服務(wù)器獲取數(shù)據(jù)的其他方法$_SERVER[]全局變量下面對$_SERVER[]全局變量進行介紹,如表7-3所示。Web表單感謝觀看字符串處理第八章PHP程序設(shè)計01字符串的定義方法使用單引號或雙引號定義字符串字符串通常以“串”的整體作為操作對象,一般用單引號或者雙引號標識一個字符串。單引號和雙引號有一定區(qū)別。字符串的定義方法下面分別使用雙引號和單引號來定義一個字符串。字符串的定義方法運行結(jié)果如圖8-1所示。字符串的定義方法運行結(jié)果如圖8-2所示。字符串的定義方法使用定界符定義字符串運行結(jié)果如圖8-3所示。字符串的定義方法02字符串處理函數(shù)轉(zhuǎn)義和還原字符串在PHP編程過程中,將數(shù)據(jù)插入數(shù)據(jù)庫時可能引起一些問題,如出現(xiàn)錯誤或者亂碼等,因為數(shù)據(jù)庫將傳入的數(shù)據(jù)中的字符解釋成了控制符。針對這種問題,可以使用標記符或者轉(zhuǎn)義字符這類特殊的字符。字符串處理函數(shù)PHP語言提供了專門處理這些問題的技術(shù):轉(zhuǎn)義和還原字符串。方法有兩種,一種是手動轉(zhuǎn)義、還原字符串?dāng)?shù)據(jù);另一種是自動轉(zhuǎn)義、還原字符串?dāng)?shù)據(jù)。字符串處理函數(shù)獲取字符串長度使用strlen()函數(shù)獲取字符串長度,代碼如下。字符串處理函數(shù)結(jié)果如圖8-7所示。字符串處理函數(shù)截取字符串substr()函數(shù):在PHP中可應(yīng)用substr()函數(shù)對字符串進行截取。截取字符串是一個非常常用的方法substr()函數(shù)用于從字符串中按照指定位置截取一定長度的字符。字符串處理函數(shù)如果使用一個正數(shù)作為子串起點來調(diào)用這個函數(shù),將得到從起點到字符串結(jié)束的這個字符串。如果使用一個負數(shù)作為子串起點來調(diào)用該函數(shù),將得到原字符串尾部的一個子串,字符個數(shù)等于給定負數(shù)的絕對值。字符串處理函數(shù)比較字符串在PHP中,字符串的比較方法有三種。第一種是應(yīng)用strcp()函數(shù)按字節(jié)進行比較;第種是應(yīng)用strnatcmp()函數(shù)按自然排序法進行比較;第三種是應(yīng)用stcmp()函數(shù)從字符串的指定位置開始比較。字符串處理函數(shù)結(jié)果如圖8-14所示。字符串處理函數(shù)檢索字符串PHP提供了很多用于字符串檢索的函數(shù),如strstr()函數(shù)和substr_count()函數(shù)。PHP也可以像Word那樣實現(xiàn)字符串檢索。字符串處理函數(shù)替換字符串應(yīng)用字符串的替換技術(shù),可以實現(xiàn)對指定字符串中的指定字符進行替換。此項功能最常見的就是在搜索引擎的關(guān)鍵字處理中。字符串處理函數(shù)將搜索到的字符串中的關(guān)鍵字替換顏色,使搜索到的結(jié)果便于查看。字符串的替換技術(shù)可以通過以下兩個函數(shù)實現(xiàn):str_ireplace()函數(shù)和substr_replace()函數(shù)。字符串處理函數(shù)去掉字符串首尾空白字符和特殊字符用戶在輸入數(shù)據(jù)時經(jīng)常會在無意中輸入空白字符和特殊字符。在有些情況下,字符串中不允許出現(xiàn)空白字符和特殊字符,這就需要去除字符串中的空白字符和特殊字符。字符串處理函數(shù)PHP提供了ltrim()函數(shù)用于去除字符串左邊的空白字符和特殊字符。rtrim()函數(shù)用于去除字符串右邊的空白字符和特殊字符;trim()函數(shù)用于去除字符串左右兩邊的空白字符和特殊字符。字符串處理函數(shù)格式化字符串通過字符串格式化技術(shù)可以實現(xiàn)對指定字符的個性化輸出,并以不同的類型進行顯示。例如,在輸出數(shù)字字符串時,可以應(yīng)用格式化技術(shù)指定數(shù)字輸出的格式,如保留幾位小數(shù)或者不保留小數(shù)。字符串處理函數(shù)結(jié)果如圖8-22所示。字符串處理函數(shù)分割、合成字符串explode()函數(shù):分割字符串是通過explode()函數(shù)實現(xiàn)的。使用該函數(shù)可以將指定字符串中的內(nèi)容按照某個規(guī)則進行分類、存儲,進而實現(xiàn)更多的功能。字符串處理函數(shù)結(jié)果如圖8-24所示。字符串處理函數(shù)字符串與HTML轉(zhuǎn)義字符串轉(zhuǎn)換字符串與HTML轉(zhuǎn)義字符串之間的轉(zhuǎn)換是為了將字符串轉(zhuǎn)換為能直接在網(wǎng)頁中顯示的轉(zhuǎn)義字符串,而不會被解析為網(wǎng)頁標簽或源代碼。這個操作應(yīng)用最多的是論壇或者博客,通過轉(zhuǎn)換直接將用戶提交的源碼輸出,確保源碼不被解析。字符串處理函數(shù)htmlentities()函數(shù)用于將所有的字符都轉(zhuǎn)換成HTML轉(zhuǎn)義字符串,語法如下,函數(shù)的參數(shù)說明如表8-4所示。字符串處理函數(shù)其他常用字符串函數(shù)strrev()函數(shù):運行結(jié)果如圖8-26所示。字符串處理函數(shù)str_repeat()函數(shù):運行結(jié)果如圖8-27所示。字符串處理函數(shù)感謝觀看MySQL數(shù)據(jù)庫第九章PHP程序設(shè)計01MySQL數(shù)據(jù)庫簡介什么是MySQL數(shù)據(jù)庫MySQL數(shù)據(jù)庫是一款安全的、跨平臺的、高效的,并與PHP、Java等主流編程語言緊密結(jié)合的數(shù)據(jù)庫系統(tǒng)。該數(shù)據(jù)庫系統(tǒng)由瑞典的MySQLAB公司開發(fā)、發(fā)布并支持。MySQL數(shù)據(jù)庫的象征符號是一只名為Sakila的海豚,它代表著MySQL數(shù)據(jù)庫的速度、能力、精確和優(yōu)秀本質(zhì)。MySQL數(shù)據(jù)庫簡介MySQL數(shù)據(jù)庫的特點功能強大:MySQL數(shù)據(jù)庫提供了多種數(shù)據(jù)庫存儲引擎,每個引擎各有所長。支持跨平臺;運行速度快;支持面向?qū)ο?;安全性高;成本低;支持各種開發(fā)語言;存儲容量大;支持強大的內(nèi)置函數(shù)。MySQL數(shù)據(jù)庫簡介MySQL5支持的特性MySQL

5已經(jīng)是一個非常成熟的企業(yè)級的數(shù)據(jù)庫管理系統(tǒng)。在許多大型的開源項目中被廣泛應(yīng)用。MySQL5支持許多基本特性和高級特性。MySQL數(shù)據(jù)庫簡介02啟動和關(guān)閉MySQL服務(wù)器啟動MySQL服務(wù)器啟動MySQL服務(wù)器后就可以操作MySQL數(shù)據(jù)庫了。啟動MySQL服務(wù)器的方法已經(jīng)在第1章中進行了詳細地介紹,這里不再贅述。啟動和關(guān)閉MySQL服務(wù)器連接和斷開MySQL服務(wù)器啟動MySQL服務(wù)器,如圖9-1所示。啟動和關(guān)閉MySQL服務(wù)器03操作MySQL數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫創(chuàng)建db_user數(shù)據(jù)庫后,頁面左側(cè)會顯示數(shù)據(jù)庫列表,如圖9-5所示。操作MySQL數(shù)據(jù)庫選擇數(shù)據(jù)庫例如,選擇名為db_user的數(shù)據(jù)庫,操作命令如圖9-6所示。操作MySQL數(shù)據(jù)庫查看數(shù)據(jù)庫數(shù)據(jù)庫創(chuàng)建完成后,可以使用“showdatabases”命令查看MySQL數(shù)據(jù)庫中所有已經(jīng)存在的數(shù)據(jù)庫。語法如下此處運行的命令為大寫字母形式,不影響運行結(jié)果。操作MySQL數(shù)據(jù)庫刪除數(shù)據(jù)庫刪除數(shù)據(jù)庫的操作應(yīng)該謹慎使用。一旦執(zhí)行這項操作,數(shù)據(jù)庫的所有結(jié)構(gòu)和數(shù)據(jù)都會被刪除,而且沒有恢復(fù)的可能,除非數(shù)據(jù)庫有備份。操作MySQL數(shù)據(jù)庫04MySQL數(shù)據(jù)類型數(shù)字類型MySQL數(shù)據(jù)庫支持所有的ANS/ISOSQL92數(shù)字類型,包括準確數(shù)字的數(shù)據(jù)類型、近似數(shù)字的數(shù)據(jù)類型。其中,關(guān)鍵字int是integer簡寫,關(guān)鍵字dec是decimal的簡寫。MySQL數(shù)據(jù)類型字符串類型字符串類型可以分為3類:普通的文本字符串類型類型和、可變類型和特殊類型。它們都有一定的區(qū)別,取值的范圍不同,應(yīng)用的地方也不同。MySQL數(shù)據(jù)類型日期和時間類型日期和時間類型如表9-6所示。MySQL數(shù)據(jù)類型05操作數(shù)據(jù)表創(chuàng)建數(shù)據(jù)表CREATETABLE命令的參數(shù)說明如表9-7所示。操作數(shù)據(jù)表查看表結(jié)構(gòu)成功創(chuàng)建數(shù)據(jù)表后,可以使用SHOW

COLUMNS命或DESCRIBE命令查看指定數(shù)據(jù)表的表結(jié)構(gòu)。操作數(shù)據(jù)表修改表結(jié)構(gòu)采用ALTERTABLE命令修改表結(jié)構(gòu)。修改表結(jié)構(gòu)包括增加或者刪除字段,如修改字段名稱或者字段類型、設(shè)置取消主鍵外鍵、設(shè)置取消索引、修改表的注釋等。操作數(shù)據(jù)表重命名數(shù)據(jù)表重命名數(shù)據(jù)表采用RENAMETABLE命令。說明:該語句可以同時對多個數(shù)據(jù)表進行重命名,多個表之間以逗號“,”分隔。操作數(shù)據(jù)表刪除數(shù)據(jù)表刪除數(shù)據(jù)表的操作很簡單,與刪除數(shù)據(jù)庫的操作類似。使用DROPTABLE命令即可實現(xiàn)。格式如下。DROPTABLE數(shù)據(jù)表名;操作數(shù)據(jù)表06數(shù)據(jù)表記錄的更新操作數(shù)據(jù)表記錄的添加在建立一個空的數(shù)據(jù)庫和數(shù)據(jù)表時,首先要想清楚如何向數(shù)據(jù)表中添加數(shù)據(jù)。這項操作可以通過INSERTINTO命令來實現(xiàn)。數(shù)據(jù)表記錄的更新操作數(shù)據(jù)表記錄的修改要執(zhí)行修改數(shù)據(jù)表記錄的操作,可以使用UPDATE命令,該命令的語法格式如下。數(shù)據(jù)表記錄的更新操作數(shù)據(jù)表記錄的刪除在執(zhí)行過程中,如果該語句沒有指定WHERE條件,那么將刪除所有的記錄。如果指定了WHERE條件,將按照指定的條件進行刪除。數(shù)據(jù)表記錄的更新操作07數(shù)據(jù)表記錄的查詢操作select命令是最常用的查詢命令,其語法格式如下。數(shù)據(jù)表記錄的查詢操作08MySQL中的特殊字符這些特殊字符及轉(zhuǎn)義后對應(yīng)的字符如表9-11所示。MySQL中的特殊字符09MySQL數(shù)據(jù)庫的備份與還原備份數(shù)據(jù)庫在命令提示符窗口中使用mysqldump命令,可以將數(shù)據(jù)庫中的數(shù)據(jù)備份成一個文本文件,表的結(jié)構(gòu)和表的數(shù)據(jù)將存儲在生成的文本文件中。mysqldump命令的工作原理很簡單,它先查出需要備份的表的結(jié)構(gòu),再在文本文件中生成一個create語句。MySQL數(shù)據(jù)庫的備份與還原還原數(shù)據(jù)庫管理員的非法操作和計算機的故障都會破壞數(shù)據(jù)庫文件。當(dāng)數(shù)據(jù)庫遇到這些意外時,可以通過備份文件將數(shù)據(jù)庫還原到備份時的狀態(tài),這樣可以將損失降到最小。MySQL數(shù)據(jù)庫的備份與還原感謝觀看PHP操作MySQL數(shù)據(jù)庫第十章PHP程序設(shè)計01PHP操作MySQL數(shù)據(jù)庫的方法連接MySQL服務(wù)器使用PHP操作MySQL數(shù)據(jù)庫時,首先要建立與MySQL服務(wù)器的連接。MySQLi擴展提供了mysqli_connect函數(shù),用于實現(xiàn)與MySQL數(shù)據(jù)庫的連接。PHP操作MySQL數(shù)據(jù)庫的方法選擇MySQL數(shù)據(jù)庫mysali_connect()函數(shù)可以創(chuàng)建與MySQL服務(wù)器的連接,同時還可以指定數(shù)據(jù)庫名稱。例如,在連接MySQL服務(wù)器時選擇名為“databook”的數(shù)據(jù)庫。PHP操作MySQL數(shù)據(jù)庫的方法執(zhí)行SQL語句一般情況下,對數(shù)據(jù)庫中的數(shù)據(jù)表進行操作是使用mysqli_query()函數(shù)執(zhí)行SQL語句。其語法格式如下。mixedmysqli_query(mysqlilink,stringqueryl,intresultmode])PHP操作MySQL數(shù)據(jù)庫的方法將結(jié)果集返回數(shù)組中mysqli_result常用的函數(shù)或成員方法如表10-1所示。PHP操作MySQL數(shù)據(jù)庫的方法使用面向?qū)ο蟛僮鱉ySQL數(shù)據(jù)庫運行結(jié)果如圖10-4所示。PHP操作MySQL數(shù)據(jù)庫的方法mysqli_result的指針我們可以通過一些函數(shù)來讀取mysqli_result中保存的數(shù)據(jù),這些函數(shù)都有一個共同特點。即每調(diào)用一次,就會自動返回下一條記錄,如果已經(jīng)到達最后一條記錄,則會返回False。PHP操作MySQL數(shù)據(jù)庫的方法釋放內(nèi)存mysqli_free_result()函數(shù)可用于釋放內(nèi)存。數(shù)據(jù)庫操作完成后,需要關(guān)閉結(jié)果集以釋放系統(tǒng)資源。PHP操作MySQL數(shù)據(jù)庫的方法關(guān)閉連接完成數(shù)據(jù)庫的操作后,需要及時斷開數(shù)據(jù)庫連接并釋放內(nèi)存,否則會浪費大量的資源。在訪問量較大的Web項目導(dǎo)致服務(wù)器崩潰時,可以使用MySQL函數(shù)庫中的mysqli_close()函數(shù)斷開與MySQL服務(wù)器的連接。PHP操作MySQL數(shù)據(jù)庫的方法02管理MySQL數(shù)據(jù)庫中的數(shù)據(jù)添加數(shù)據(jù)用于設(shè)計添加數(shù)據(jù)的表單,效果如圖10-6所示。管理MySQL數(shù)據(jù)庫中的數(shù)據(jù)編輯數(shù)據(jù)有時在插入數(shù)據(jù)后才會發(fā)現(xiàn)輸入的數(shù)據(jù)是錯誤的,或者一段時間后數(shù)據(jù)需要更新,這時就要對數(shù)據(jù)進行編輯。數(shù)據(jù)更新可以使用update語句,依然通過mysqli_query()函數(shù)執(zhí)行該語句。管理MySQL數(shù)據(jù)庫中的數(shù)據(jù)刪除數(shù)據(jù)刪除數(shù)據(jù)庫中的數(shù)據(jù)用的是delete語句。在不指定刪除條件的情況下,將刪除指定數(shù)據(jù)表中所有的數(shù)據(jù);如果定義了刪除條件,那么只刪除數(shù)據(jù)表中的指定數(shù)據(jù)。管理MySQL數(shù)據(jù)庫中的數(shù)據(jù)批量刪除數(shù)據(jù)在實際應(yīng)用中,經(jīng)常需要刪除一些無用的數(shù)據(jù),而且這些數(shù)據(jù)不止一個,這就需要批量刪除。批量刪除數(shù)據(jù)的方式和刪除一個數(shù)據(jù)的方式相同,唯一不同的是刪除批量數(shù)據(jù),需要記錄要刪除的數(shù)據(jù)的id,用于區(qū)別要刪除的數(shù)據(jù)。管理MySQL數(shù)據(jù)庫中的數(shù)據(jù)03PDO概述配置PDO在Windows系統(tǒng)下啟動PDO需要在phpini文件中進行配置,本書所用服務(wù)器為XAMPP服務(wù)器,并添加了擴展。啟動其他數(shù)據(jù)庫的擴展只需把以下配置信息前面的分號去掉即可。PDO概述訪問數(shù)據(jù)庫與MySQLi擴展類似,PDO擴展也是實例化的一個PDO對象??梢哉{(diào)用相關(guān)方法和屬性來執(zhí)行數(shù)據(jù)庫的操作。PDO概述exec()方法運行結(jié)果如圖10-16所示。PDO概述query()方法不同于exec()方法,query()方法通常用于select語句中。它的返回值是PDOStament的實例化對象,也是PDO的結(jié)果集。PDO概述感謝觀看PHP會話控制第十一章PHP程序設(shè)計01會話機制用戶和服務(wù)器通常使用HTTP進行通信,但是HTTP本身是無狀態(tài)的,這與HTTP最初的設(shè)計目的是相符的??蛻舳酥恍枰唵蔚叵蚍?wù)器請求下載某些文件,無論是客戶端還是服務(wù)器都沒有必要記錄彼此之前的行為,所以每一次請求都是獨立的。會話機制作為傳輸載體的HTTP還添加了會話機制,所謂會話是指有始有終的一系列動作或消息,如打電話時,從拿起電話撥號到掛斷電話的一系列過程被稱為一個會話。Web通信的會話有兩種,一種是Cookie,另種是Session。會話機制02Cookie的操作瀏覽器中的Cookie設(shè)置瀏覽器在默認情況下都開啟了Cookie,用戶可以在瀏覽器中設(shè)置是否開啟Cookie。以IE瀏覽器為例,其Cookie的設(shè)置方法如下。Cookie的操作打開IE瀏覽器,單擊“工具”菜單欄中的“Internet選項”,然后選擇“隱私”選項卡在“設(shè)置”區(qū)域拖動滾動滑塊,即可修改IE瀏覽器中的Cookie設(shè)置。通常情況下,可以將滾動滑塊拖動至“中”或者“中高”級別,這樣既可以保護用戶的隱私,又可以開啟Cookie。Cookie的操作創(chuàng)建Cookie創(chuàng)建Cookie使用的是setcookie()函數(shù)。Cookie是HTTP頭標的組成部分,頭標必須在其他頁面內(nèi)容之前發(fā)送,也必須最先輸出,所以在setcookie()函數(shù)之前不能有任何內(nèi)突輸出,即使是一個HTML標記、一個echo語句,甚至是一個空行,都會導(dǎo)致程序出錯。Cookie的操作setcookie()函數(shù)的參數(shù)說明如表11-1所示。Cookie的操作讀取Cookie第一次運行時,由于Cookie是不存在的,因此還需要先進行創(chuàng)建,運行結(jié)果如圖11-1所示。Cookie的操作在刷新當(dāng)前頁面后,由于Cookie已經(jīng)創(chuàng)建完畢,因此可得到運行結(jié)果如圖11-2所示。Cookie的操作刪除Cookie我們已經(jīng)了解了如何創(chuàng)建和訪問Cookie。如果創(chuàng)建Cookie時沒有設(shè)置過期時間,那么Cookie會在瀏覽器關(guān)閉時被自動刪除。Cookie的操作在關(guān)閉瀏覽器之前刪除Cookie有兩種方法,一種是使用setcookie()函數(shù)刪除,另一種是在客戶端手動刪除。在客戶端手動刪除Cookie可能會給用戶帶來不好的體驗,較好的做法是使用戶選擇性地刪除瀏覽器端的Cookie。Cookie的操作創(chuàng)建Cookie數(shù)組setcookie()函數(shù)還可以創(chuàng)建Cookie數(shù)組,語法格式如下。Cookie的操作index.php文件代碼如下。Cookie的操作03Session的操作Session是指一個終端用戶與交互系統(tǒng)進行通信的時間間隔,通常是指用戶從注冊進入系統(tǒng)到注銷退出系統(tǒng)所經(jīng)過的時間。PHP也可以提前主動結(jié)束Session,終止Session對象的運行。Session的操作Session在Web技術(shù)中占有非常重要的地位,由于網(wǎng)頁是一種無狀態(tài)的連接程序,無法記錄用戶的瀏覽狀態(tài)。因此必須通過Session記錄用戶的有關(guān)信息,以供用戶再次以此身份對Web服務(wù)器提供要求時做確認。Session的操作例如,在電子商務(wù)網(wǎng)站中,通過Session記錄用戶登錄的信息和用戶購買的商品。如果沒有Session,用戶每進入一個頁面都要輸入用戶名和密碼。Session的操作當(dāng)?shù)谝淮卧L問網(wǎng)站時,Seesionstart()函數(shù)會創(chuàng)建一個唯一的Sessionid并自動通過HTTP的請求頭將這個Sessionid保存到客戶端Cookie中。同時,也在服務(wù)器端創(chuàng)建一個以Sessionid命名的文件,用于保存這個用戶的會話信息。Session的操作當(dāng)同一個用戶再次訪問這個網(wǎng)站時,也會自動通過HTTP的請求頭將Cookie中保存的Seesionid再攜帶過來。這時Sessionstart()函數(shù)就不會再去分配一個新的Sessionid,而是在服務(wù)器的硬盤中尋找和這個Sessionid同名的Session文件。Session的操作將之前為這個用戶保存的會話信息讀出來,并在當(dāng)前腳本中應(yīng)用,達到跟蹤這個用戶的目的。Session以數(shù)組的形式存在,如:$_SESSION[‘Session名’]。Session的操作啟動SessionSession的設(shè)置不同于Cookie,必須先啟動Session,也就是在PHP中必須調(diào)用sessionstart()函數(shù)。sessionstart()函數(shù)的語法格式如下。Session的操作存儲Session在PHP中,全局數(shù)組$_SESSION[]可以用來存儲Session,示例代碼如下。Session的操作注冊Session例如,啟動會話,然后創(chuàng)建一個Session變量并賦予空值,代碼如下。Session的操作使用SessionPHP中的Session有一個非常強大的功能,即可以保存當(dāng)前用戶的特定數(shù)據(jù)和相關(guān)信息可以保存的數(shù)據(jù)類型包括字符串、數(shù)組和對象等。要將各種類型的數(shù)據(jù)添加到Session中,必須使用全局數(shù)組$_SESSION[]。Session的操作刪除Session刪除Session的會話的方法主要有刪除單個會話、刪除所有會話和結(jié)束當(dāng)前會話。刪除單個會話;刪除所有會話;結(jié)束當(dāng)前會話。Session的操作Session的應(yīng)用頁面效果如圖11-6所示。Session的操作04Session和Cookie的區(qū)別Cookie是通過擴展HTTP協(xié)議實現(xiàn)的,Cookie主要包括名字、值、過期時間、路徑和域。Session以一種類似散列表的形式保存信息,當(dāng)程序需要為某個客戶端的請求創(chuàng)建一個Session時,服務(wù)器首先檢查這個客戶端的請求里是否已包含了一個Session標識(也被稱為Sessionid)。Session和Cookie的區(qū)別感謝觀看面向?qū)ο缶幊痰谑翽HP程序設(shè)計01面向?qū)ο蟾攀雒嫦驅(qū)ο笫且环N符合人類思維習(xí)慣的編程思想?,F(xiàn)實生活中存在各種形態(tài)的事物,這些事物之間存在著各種各樣的聯(lián)系。在程序中使用對象來映射現(xiàn)實中的事物,或使用對象的關(guān)系來描述事物之間的聯(lián)系,這種思想就是面向?qū)ο笏枷?。面向?qū)ο蟾攀?2類與對象類的定義在面向?qū)ο蟮乃枷胫?,最核心的就是對象。為了能在程序中?chuàng)建對象,首先需要定義一個類。類是對象的抽象,它用于描述一組對象的共同特征和行為。類與對象對象的創(chuàng)建要完成具體的功能,僅有類是遠遠不夠的,還需要根據(jù)類創(chuàng)建實例對象。在PHP程序中可以使用new關(guān)鍵字來創(chuàng)建對象,具體語法格式如下。S對象名=new類名([參數(shù)1,參數(shù)2,...]);類與對象類的封裝在例12-2中定義的Person類有兩個成員屬性,即name和age。在為age賦值時,由于沒有做限定,因此可以賦予任何值,甚至是一個負數(shù)。類與對象特殊的$this對象一旦被創(chuàng)建,則對象的每個成員方法中都會存在一個特殊的對象引用“$this”。它代表當(dāng)前對象,用于完成對象內(nèi)部成員之間的訪問。類與對象03構(gòu)造方法和析構(gòu)方法構(gòu)造方法每個類都有一個構(gòu)造方法,在創(chuàng)建對象時這個構(gòu)造方法會被自動調(diào)用。如果在類中沒有顯式地聲明構(gòu)造方法,則PHP會自動生成一個沒有參數(shù)、沒有任何操作的默認構(gòu)造方法。當(dāng)在類中顯式聲明了構(gòu)造方法時,默認構(gòu)造方法將不存在。構(gòu)造方法和析構(gòu)方法析構(gòu)方法其語法格式如下。構(gòu)造方法和析構(gòu)方法04類常量和靜態(tài)成員類常量在類中,有些屬性的值不能改變,并且希望被所有對象共享。如圓周率是一個數(shù)學(xué)常數(shù),在數(shù)學(xué)、物理計算中被廣泛使用,此時可以將表示圓周率的成員屬性定義為常量。類常量和靜態(tài)成員靜態(tài)成員類常量屬于類,它可以實現(xiàn)類的所有對象共享一份數(shù)據(jù)。當(dāng)然,在類中使用靜態(tài)成員也可以達到同樣的效果。靜態(tài)成員被關(guān)鍵字static修飾,因此它不屬于任何對象,只屬于類。類常量和靜態(tài)成員05面向?qū)ο筇匦浴^承extends關(guān)鍵字在PHP中,可以使用extends關(guān)鍵字繼承一個類,且不支持多繼承。被繼承的類被稱為父類,繼承的類被稱為子類。繼承可以很好地提高代碼的重用性。當(dāng)子類繼承父類以后,了類不僅可以擁有自己的屬性和方法,還可以擁有父類所有非私有的屬性和方法。面向?qū)ο筇匦浴^承final關(guān)鍵字在PHP中,fial表示最終的意思,所以被final關(guān)鍵字修飾的類或方法是不能被更改的換句話說,被final關(guān)鍵字修飾的類不能被繼承。也不會有子類,且被final關(guān)鍵字修改的方法不可以在子類中被重寫。需要注意的是,final關(guān)鍵字不能用來修飾變量。面向?qū)ο筇匦浴^承06面向?qū)ο筇匦浴鄳B(tài)重寫:在子類中重寫父類的方法,具有相同的方法名、相同的參數(shù)表和相同的返回類型。重載:通常是指一個類中的多個方法具有相同的名稱,但這些方法具有不同的參數(shù)列表。面向?qū)ο筇匦浴鄳B(tài)07抽象類抽象類是通過abstract關(guān)鍵字來聲明的,它是一種不能被實例化的類,只能作為其他類的父類來使用。用于定義需要子類來實現(xiàn)的方法被稱為抽象方法,抽象方法也是使用abstract關(guān)鍵字來聲明的。抽象類08接口接口用interface關(guān)鍵字來定義,它是一種特殊的抽象類,接口中未實現(xiàn)的方法(即使是空方法)必須在子類中實現(xiàn)。一個子類只能繼承一個父類,卻可以實現(xiàn)多個接口。通過implements關(guān)鍵字可以實現(xiàn)接口。接口09對象的使用引用對象和克隆對象運行結(jié)果如圖12-13所示。對象的使用比較對象運行結(jié)果如圖12-15所示。對象的使用對象的類型在PHP中,可以使用instanceof關(guān)鍵字來判斷對象的類型。值得注意的是,如果一個對象屬于一個類,則這個對象一定屬于該類的父類,但一定不屬于該類的子類。對象的使用10魔術(shù)方法__set()方法和__get()方法__set()方法和__get()方法一般用于對私有單元格進行賦值或取值操作。__set()方法需要兩個參數(shù),即變量名和變量值,沒有返回值;__get()方法需要一個參數(shù),即變量名。魔術(shù)方法__call()方法運行結(jié)果如圖12-17所示。魔術(shù)方法__toString()方法運行結(jié)果如圖12-18所示。魔術(shù)方法__autoload()方法__

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論