PHP基礎(chǔ)案例與項目開發(fā)高職PPT完整全套教學(xué)課件_第1頁
PHP基礎(chǔ)案例與項目開發(fā)高職PPT完整全套教學(xué)課件_第2頁
PHP基礎(chǔ)案例與項目開發(fā)高職PPT完整全套教學(xué)課件_第3頁
PHP基礎(chǔ)案例與項目開發(fā)高職PPT完整全套教學(xué)課件_第4頁
PHP基礎(chǔ)案例與項目開發(fā)高職PPT完整全套教學(xué)課件_第5頁
已閱讀5頁,還剩260頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PHP基礎(chǔ)案例與項目開發(fā)項目1PHP概述.pptx項目2PHP語言基礎(chǔ).pptx項目3PHP流程控制.pptx項目4PHP開發(fā)基礎(chǔ).pptx項目5MySQL數(shù)據(jù)庫操作.pptx項目6模板解析.pptx項目7新聞系統(tǒng).pptx項目8面向?qū)ο缶幊袒A(chǔ).pptx項目9電子商務(wù)系統(tǒng).pptx項目10微信小程序.pptx全套可編輯PPT課件項目一PHP概述學(xué)習(xí)目標1、熟悉PHP語言的特點2、掌握PHP在Windows下開發(fā)環(huán)境的配置3、了解常用的PHP編輯工具4、掌握PHP程序的編寫過程PHP介紹PHP特點PHP工作原理PHP簡介1.1PHP簡介1.1.1PHP概述什么是PHP?

PHP是一個應(yīng)用范圍很廣的語言,特別是在網(wǎng)絡(luò)程序開發(fā)方面。一般來說PHP在服務(wù)器端執(zhí)行,通過執(zhí)行PHP的代碼來產(chǎn)生網(wǎng)頁供瀏覽器讀取,此外也可以用來開發(fā)命令行腳本程序和GUI應(yīng)用程序。PHP可以在許多的不同種類的服務(wù)器、操作系統(tǒng)、平臺上執(zhí)行,也可以和許多數(shù)據(jù)庫系統(tǒng)結(jié)合。使用PHP不需要任何費用,官方組織PHPGroup提供了完整的程序源代碼,允許使用者修改、編譯、擴充來使用。若有條件可以演示GUI程序PHP的特點隨著開源思想的發(fā)展,開放源代碼的LAMP已經(jīng)與Java和.NET形成三足鼎立之勢,PHP之所以應(yīng)用廣泛,受到大眾歡迎,是因為它且有很多突出的特點,如下:1.開源免費2.跨平臺性3.快捷性4.效率高5.圖像處理6.支持多種數(shù)據(jù)庫7.面向?qū)ο?.1.2PHP的工作原理靜態(tài)網(wǎng)頁的工作方式是:當(dāng)用戶在瀏覽器里輸入一個靜態(tài)網(wǎng)頁并按回車后,向服務(wù)器端提出了一個瀏覽網(wǎng)頁的請求。服務(wù)器端接到請求后,就會尋找用戶要瀏覽的靜態(tài)網(wǎng)頁文件,然后直接發(fā)給用戶。發(fā)出請求將文件返回瀏覽器服務(wù)器1.1.2PHP的工作原理

PHP的所有應(yīng)用程序都是通過WEB服務(wù)器(如IIS或Apache)和PHP引擎程序解釋執(zhí)行完成的。發(fā)出請求將文件返回瀏覽器服務(wù)器端發(fā)送給PHP引擎生成HTML文件將文件返回PHP搭建PHP的開發(fā)環(huán)境方法有很多,本書介紹一種最實用的在Windows的IIS上配置PHP的開發(fā)環(huán)境,這樣的目地是在此服務(wù)器上也可以同時運行.NET程序,比較方便實用。1.2配置開發(fā)環(huán)境1.2.1WINDOWS7下安裝PHPIIS的安裝(1)開始→控制面板→程序和功能→打開或關(guān)閉Windows功能1.2.1WINDOWS7下安裝PHPIIS的安裝(2)按右圖選取必要的功能1.2.1WINDOWS7下安裝PHPIIS的安裝(3)點“確定”后程序執(zhí)行安裝,完成后其窗口會自動關(guān)閉。打開瀏覽器,輸入“http://localhost”后看到右圖所示的頁面就表示IIS安裝成功了。1.2.1WINDOWS7下安裝PHP2.安裝MySQLMySQL可到其官網(wǎng)上下載,具體網(wǎng)址是:/downloads/installer/。選擇適合自己系統(tǒng)的版本。(1)選中下載下來的文件“mysql-installer-community-.msi”,點右鍵選“管理員取得所有權(quán)”,這樣使得安裝程序具有足夠的運行權(quán)限,防止由于權(quán)限不夠而出現(xiàn)的錯誤。雙擊下載的文件“mysql-installer-community-.msi”,若出現(xiàn)如上圖的提示,說明缺少安裝程序所必需的運行環(huán)境,則需要安裝Microsoft.NETFramework4。1.2.1WINDOWS7下安裝PHP2.安裝MySQL(2)如出現(xiàn)上圖的提示,則需進行Microsoft.NETFramework4的安裝,否則就可以跳過此步。下載地址:/zh-cn/download/details.aspx?id=17718點擊“下載”,跳過推薦的下載程序,就能成功開始下載:dotNetFx40_Full_x86_x64.exe雙擊下載程序“dotNetFx40_Full_x86_x64.exe”開始安裝,如右圖所示,按提示進行操作即可完成安裝。至此,MySQL5.7的運行環(huán)境安裝完成!1.2.1WINDOWS7下安裝PHP2.安裝MySQL(3)雙擊文件“mysql-installer-community-.msi”,開始安裝MySQL5.7。然后點擊“Next”后選擇Custom表示定制安裝,如圖所示。1.2.1WINDOWS7下安裝PHP2.安裝MySQL(4)點擊“Next”后把左邊的“MySQLServers”點開,選中“MySQLServer5.7.12–X86”,安裝所需的組件,點擊向右的箭頭如圖所示1.2.1WINDOWS7下安裝PHP2.安裝MySQL(5)選中上圖所示右邊的“MySQLServer5.7.12–X86”,則在其下面會出現(xiàn)一個鏈接“AdvancedOptios”,點擊這個鏈接,出現(xiàn)一個對話框,可按如圖所示的去選擇安裝路徑1.2.1WINDOWS7下安裝PHP2.安裝MySQL(6)點擊“OK”后再點“Next”,然后再點擊“Execute”開始安裝,如右圖1.2.1WINDOWS7下安裝PHP2.安裝MySQL(7)安裝初步完成,點擊“Next”,然后再點擊“Next”,在“ConfigType”中選擇“ServerMachine”,如右圖1.2.1WINDOWS7下安裝PHP2.安裝MySQL(8)點擊“Next”,輸入數(shù)據(jù)庫的超級用戶密碼(一定要牢記密碼?。?,如圖1.2.1WINDOWS7下安裝PHP2.安裝MySQL(9)點擊“Next”,進入“WindowsService”配置頁面,安裝為Windws服務(wù),然后再點擊“Next”,去掉“EnableXPeotocol/MySQLasaDocumentDatabase”前面的勾1.2.1WINDOWS7下安裝PHP2.安裝MySQL(10)點擊“Next”,然后再點擊“Execute”開始執(zhí)行配置程序,點擊“Log”查看執(zhí)行配置程序的詳細信息,如圖點擊“Finish”完成安裝。至此,MySQL成功安裝!1.2.1WINDOWS7下安裝PHP3.PHP7的安裝(1)VC14運行庫(VisualC++RedistributableforVisualStudio2015)是PHP7能夠正常運行的必要條件,而正常情況下WIN7是不會有的,所以得先下載安裝,VC14運行庫的下載地址:/zh-CN/download/details.aspx?id=48145點擊“下載”,選擇適合自己的版本(這里選擇32位的版本:vc_redist.x86.exe),再點“Next”開始下載,下載完成后雙擊“vc_redist.x86.exe”開如進行安裝,如圖所示,按提示進行操作即可完成安裝。1.2.1WINDOWS7下安裝PHP3.PHP7的安裝(2)到官網(wǎng)下載最新版的PHP7:/download選擇適合自己系統(tǒng)的版本下載,這里選擇“VC14x86NonThreadSafe(php-7.0.8-nts-Win32-VC14-x86.zip)”。把下載的壓縮文件“php-7.0.8-nts-Win32-VC14-x86.zip”解壓縮到某一個目錄,如“d:\php708”。打開此目錄,復(fù)制文件“php.ini-development”并改名為“php.ini”。打開“php.ini”,修改如下幾處:將“error_reporting=E_ALL”改為“error_reporting=E_ALL&~E_NOTICE”;將“include_path=".;c:\php\includes"”前的分號去掉,并且改為“include_path=".;D:\php708;D:\php708\dev;D:\php708\ext;D:\php708\extras;D:\php708\lib;D:\php708\sas12"”;將“extension_dir="ext"”前的分號去掉,并改為“extension_dir="D:\php708\ext"”;1.2.1WINDOWS7下安裝PHP3.PHP7的安裝(2)將下列文字前面的分號去掉:extension=php_bz2.dllextension=php_curl.dllextension=php_fileinfo.dllextension=php_gd2.dllextension=php_gettext.dllextension=php_intl.dllextension=php_mbstring.dllextension=php_exif.dllextension=php_mysqli.dllextension=php_openssl.dllextension=php_pdo_mysql.dllextension=php_pdo_odbc.dllextension=php_sockets.dllextension=php_xmlrpc.dllextension=php_xsl.dll保存文件“php.ini”。這一步很重要!1.2.1WINDOWS7下安裝PHP3.PHP7的安裝(3)系統(tǒng)變量的增加與更改點開始→控制面板→系統(tǒng)→高級系統(tǒng)設(shè)置→高級→環(huán)境變量→系統(tǒng)變量,增加系統(tǒng)變量PHPRC=”D:\php708”;修改系統(tǒng)變量Path,在其變量值的最后面添加“;D:\php708;D:\php708\dev;D:\php708\ext;D:\php708\extras;D:\php708\lib;”,然后一路“確定”后退出。如圖1.2.1WINDOWS7下安裝PHP3.PHP7的安裝(4)PHP管理程序“PHPManager”的安裝下載地址:/releases/view/69115選擇適合自己的版本下載,這里選擇“PHPManager1.2forIIS7-x86”,點擊其鏈接后即可下載,得到的文件是“PHPManagerForIIS-1.2.0-x86.msi”;雙擊此下載文件進行安裝,如圖所示。按提示進行操作即可完成安裝。完成后在IIS里就有一個PHPManager程序。1.2.1WINDOWS7下安裝PHP3.PHP7的安裝(5)在IIS中PHP的配置①點開始→控制面板→管理工具→Internet信息服務(wù)(IIS)管理器,點擊“PHPManager”,如圖1.2.1WINDOWS7下安裝PHP3.PHP7的安裝(5)在IIS中PHP的配置②點擊“RegisternewPHPversion”,在彈出的對話框中選擇“D:\php708\php-cgi.exe”,如圖所示。然后點擊“確定”后配置程序自動運行,完成PHPManager配置。1.2.1WINDOWS7下安裝PHP3.PHP7的安裝(5)在IIS中PHP的配置③進行測試在IIS的根目錄下新建一個文件“index.php”,用記事本打開后輸入如下的內(nèi)容:<?phpphpinfo();?>保存后打開瀏覽器,在地址欄輸入“http://localhost”可看到如圖所示,表示PHP7安裝成功!1.2.1WINDOWS7下安裝PHP3.PHP7的安裝(6)下載安裝PHP管理工具phpMyAdmin①下載地址:點擊頁面上的“Download4.6.3”即可下載,下載完畢得到壓縮包“phpMyAdmin-4.6.3-all-languages.zip”,解壓縮到IIS的根目錄下并文件夾“phpMyAdmin-4.6.3-all-languages”改名為“phpMyAdmin463”。打開此文件將文件“config.sample.inc.php”復(fù)制后并改名為“config.inc.php”,然后用寫字板打開文件:將“$cfg['blowfish_secret']”值設(shè)置為任意一個字符串,如圖phpMyAdmin是一個以PHP為基礎(chǔ),以Web-Base方式架構(gòu)在網(wǎng)站主機上的MySQL數(shù)據(jù)庫管理工具,讓管理者可用Web接口管理MySQL數(shù)據(jù)庫。借由此Web接口可以成為一個簡易方式輸入繁雜SQL語法的較佳途徑,尤其要處理大量資料的匯入及匯出更為方便。1.2.1WINDOWS7下安裝PHP3.PHP7的安裝(6)下載安裝PHP管理工具phpMyAdmin②在瀏覽器地址欄目輸入“http://localhost/phpMyAdmin463”回車,出現(xiàn)登錄頁面,在用戶名中輸入“root”,在密碼中輸入前面設(shè)置過的MySQL密碼,如右圖。1.2.1WINDOWS7下安裝PHP3.PHP7的安裝(6)下載安裝PHP管理工具phpMyAdmin③點擊“執(zhí)行”,即可進入數(shù)據(jù)庫管理首頁,如圖至此,IIS+PHP7+MySQL全部的安裝設(shè)置成功完成!2018年1月4日PHP

7.2.1、PHP7.1.13、PHP7.0.27正式發(fā)布!1.2.2常用代碼編輯工具1.AdobeDreamweaverCS6世界頂級軟件廠商adobe推出的一套擁有可視化編輯界面,用于制作并編輯網(wǎng)站和移動應(yīng)用程序的網(wǎng)頁設(shè)計軟件。支持代碼、拆分、設(shè)計、實時視圖等多種方式來創(chuàng)作、編寫和修改網(wǎng)頁,對于初級人員,可以無需編寫任何代碼就能快速創(chuàng)建web頁面。2.ZendStudio目前公認的最強大的PHP開發(fā)工具,是專業(yè)開發(fā)人員在使用PHP整個開發(fā)周期中唯一的集成開發(fā)環(huán)境

(IDE),它包括了PHP所有必須的開發(fā)部件。通過一整套編輯、調(diào)試、分析、優(yōu)化和數(shù)據(jù)庫工具,ZendStudio加速開發(fā)周期,并簡化復(fù)雜的應(yīng)用方案。1.2.2常用代碼編輯工具3.PHPEdit一款Windows下優(yōu)秀的PHP腳本IDE(集成開發(fā)環(huán)境)。該軟件為快速、便捷的開發(fā)PHP腳本提供了多種工具,其功能包括:語法關(guān)鍵詞高亮;代碼提示、瀏覽;集成PHP調(diào)試工具;幫助生成器;自定義快捷方式;150多個腳本命令;鍵盤模板;報告生成器;快速標記;插件等。4.EditPlus一款由韓國SangilKim出品的小巧但是功能強大的可處理文本、HTML和程序語言的Windows編輯器,甚至可以通過設(shè)置用戶工具將其作為C、Java、PHP等等語言的一個簡單的IDE。1.3第一個PHP程序本書所有程序均使用AdobeDreamweaverCS6開發(fā)工具進行編寫。【例1-1】編寫一個簡單的PHP程序,輸出一條歡迎信息。(1)啟動AdobeDreamweaverCS6,選擇“站點/新建站點”,把“D:\PHP”目錄設(shè)置為站點目錄,同時也設(shè)為IIS的站點根目錄。選擇“文件/新建”菜單,打開“新建文檔”對話框,在“空白頁”列表框中選擇“PHP”選項1.3第一個PHP程序【例1-1】編寫一個簡單的PHP程序,輸出一條歡迎信息。(2)單擊“創(chuàng)建”按鈕,在新建頁面的“代碼”視圖中的<body></body>標簽對中間開始編寫PHP代碼:<?phpecho"歡迎加入PHP的大家庭?。?!";?>1.3第一個PHP程序【例1-1】編寫一個簡單的PHP程序,輸出一條歡迎信息。(3)檢查代碼后,將文件保存到“D:\PHP\CH01\exp01.php”中,然后在瀏覽器地址欄中輸入:http://localhost/CH01/exp01.php,回車即可瀏覽頁面運行結(jié)果:1.4實訓(xùn)1.在自己的計算機上安裝PHP的運行環(huán)境。2.在自己的計算機上安裝AdobeDreamweaverCS6。3.編寫一個簡單的PHP程序,輸出自己的班級姓名等基本信息。項目二

PHP語言基礎(chǔ)學(xué)習(xí)目標1、掌握PHP標記風(fēng)格、注釋、關(guān)鍵字及標識符規(guī)則2、掌握PHP數(shù)據(jù)類型、運算符及表達式的運用2、掌握PHP常量與變量的定義與使用4、掌握PHP函數(shù)與數(shù)組的定義與使用2.1PHP語法基礎(chǔ)2.1.1PHP標記符與注釋標記符,就是為了便于與其他內(nèi)容區(qū)分所使用的一種特殊符號,PHP代碼可以嵌入到HTML、JavaScipt等代碼中使用,因此就需要使用PHP標記符將PHP代碼與HTML內(nèi)容進行識別,當(dāng)服務(wù)器讀取該段代碼時,就會調(diào)用PHP編譯程序進行編譯處理。PHP支持2種標記風(fēng)格,分別是標準PHP標記風(fēng)格和簡短標記風(fēng)格,在PHP7中移除了ASP和scriptPHP標簽。1.PHP標記符(1)標準PHP標記風(fēng)格<?phpecho“WelcometoChongqing!”;?>(2)簡短標記風(fēng)格<?echo“WelcometoChongqing!”;?>2.1.1PHP標記符與注釋注釋可以理解為代碼中的解釋和說明,是程序中不可缺少的重要元素。使用注釋不僅能夠提高程序的可讀性,而且還有利于程序的后期維護工作。注釋不會影響程序的執(zhí)行,因為在執(zhí)行時,注釋部分的內(nèi)容不會被解釋器執(zhí)行。在PHP程序中添加注釋的方法有2種,可以混合使用,具體方法如下:(1)“//”:C++語言風(fēng)格的單行注釋。(2)“/*……*/”:C語言風(fēng)格的多行注釋。(2)“#”:UNIX的Shell語言風(fēng)格的單行注釋。2.PHP的注釋參見【例2-1】2.1.2標識符與關(guān)鍵字在系統(tǒng)的開發(fā)過程中,需要在程序中定義一些符號來標記一些名稱,如變量名、函數(shù)名、類名、方法名等,這些符號被稱為標識符。在PHP中,定義標識符要遵偱一定的規(guī)則,具體如下。(1)標識符只能由字母、數(shù)字和下劃線組成。(2)標識符可以由一個或多個字符組成,且必須以字母或下劃線開頭。(2)當(dāng)標識符用用變量時候,區(qū)分大小寫。(4)當(dāng)標識符由多個單詞組成,那么應(yīng)使用下劃線進行分隔,如user_name。1.標識符2.關(guān)鍵字關(guān)鍵字就是編程語言里事先定義好并賦予了特殊含義的單詞,也稱為保留字。如echo用于輸出數(shù)據(jù),function用于定義函數(shù)。教材66頁表2-1列舉了PHP中所有的關(guān)鍵字。注意:(1)關(guān)鍵字不能作為常量、函數(shù)名或類名使用。(2)關(guān)鍵字雖然可作為變量名使用,但是容易導(dǎo)導(dǎo)致混淆,不建議使用。2.2PHP的數(shù)據(jù)類型數(shù)據(jù)是計算機程序的核心,計算機程序運行時需要操作各種數(shù)據(jù),這些數(shù)據(jù)在程序運行時臨時存儲在計算機內(nèi)存中。定義變量時,系統(tǒng)在計算機內(nèi)存中開辟了一塊空間用于存放這些數(shù)據(jù),空間名就是變量,空間大小則取決于所定義的數(shù)據(jù)類型。因此就應(yīng)當(dāng)根椐程序的不同需要來使用各種類型的數(shù)據(jù),以避免浪費內(nèi)存空間。PHP支持的數(shù)據(jù)類型分為2類,分別是標量數(shù)據(jù)類型,復(fù)合數(shù)據(jù)類型和特殊數(shù)據(jù)類型,見表2-2。1.標量數(shù)據(jù)類型標量數(shù)據(jù)類型是數(shù)據(jù)結(jié)構(gòu)中最基本的單元,只能存儲一種數(shù)據(jù)。(1).整型(integer)整型數(shù)據(jù)類型取值只能是整數(shù),包括正整數(shù)、負整數(shù)和0。整型數(shù)據(jù)可以用十進制、八進制和十六進制表示。八進制整數(shù)前面必須加0;十六進制整數(shù)前面必須加0x。字長與操作系統(tǒng)有關(guān),在22位的操作系統(tǒng)中的有效范圍是-2147482648~+2147482647。示例:$a=666;//十進制$b=-666;//負整數(shù)$c=0666;//八進制$d=0x666;//十六進制2.2PHP的數(shù)據(jù)類型浮點數(shù)據(jù)類型可以存儲整數(shù)和小數(shù)。字長與操作系統(tǒng)有關(guān),在22位的操作系統(tǒng)中的有效范圍是1.7E-208~1.7E+208。浮點型數(shù)據(jù)有兩種書寫格式,分別是標準格式和科學(xué)計數(shù)法格式。(2).浮點型(float)(2).布爾型(boolean)布爾型也稱邏輯型數(shù)據(jù)。取值范圍為真值(true)或假值(false)。示例:5.12860.88-18.9//標準格式8.21E222.64E-2//科學(xué)計數(shù)法格式(4).字符串型(string)字符串是由一系列的字符組成,其中每個字符等同于一個字節(jié)。字符串的實現(xiàn)方式是一個由字節(jié)組成的數(shù)組再加上一個整數(shù)指明緩沖區(qū)長度。字符串主要由單引號和雙引號兩種方式來定義。示例:$a='重慶歡迎你’;$a="重慶歡迎你";如果字符串是包圍在雙引號(")中,PHP將對表2-2所示的轉(zhuǎn)義字符進行解析,用來表示被程序語法結(jié)構(gòu)占用了的特殊字符?!纠?-2】2.2PHP的數(shù)據(jù)類型數(shù)組是一組數(shù)據(jù)的集合,由一組有序變量組成,形成一個可操作的整體。每個變量稱為數(shù)組元素,每個元素由鍵(索引)和值構(gòu)成,每個元素都有一個唯一的鍵名,稱為索引。元素的索引只能由整型數(shù)據(jù)或字符串組成。元素的值可以是各種數(shù)據(jù)類型,定義數(shù)組的語法格式如下:$array1[key]=”value”;//方法1$array1=array(key1=>valuel,key2=>value2,...);//方法22.復(fù)合數(shù)據(jù)類型(1).數(shù)組(array)(2).對象(object)同樣一個事,既可以用面向過程編程,也可以用面向?qū)ο缶幊?。比如,“?-1”可以用面向?qū)ο缶幊虂韺崿F(xiàn)。面向?qū)ο蠛兔嫦蜻^程都有其優(yōu)勢的一面。2.2PHP的數(shù)據(jù)類型資源是一種特殊的數(shù)據(jù)類型,用于表示一個PHP的外部資源,由特定的函數(shù)來建立和使用。任何資源在不需要使用時應(yīng)及時釋放。如果程序員忘記了釋放資源,PHP垃圾回收機制將自動回收資源。2.特殊數(shù)據(jù)類型(1).資源(resource)(2).空值(null)空值表示沒有為該變量設(shè)置任何值。由于null不區(qū)分大小寫,所以null和NULL是等效的。下列三種情況都表示空值。1)尚未賦值。2)被賦值為null。2)被unset()函數(shù)銷毀的變量。2.2PHP的數(shù)據(jù)類型

PHP中為變量或常量提供了很多檢測數(shù)據(jù)類型的函數(shù),有了這些函數(shù)用戶就可以對不同類型的數(shù)據(jù)進行檢測。數(shù)據(jù)類型檢測函數(shù)見表2-4所示。4.數(shù)據(jù)類型檢測函數(shù)5.數(shù)據(jù)類型的轉(zhuǎn)換

PHP變量屬于松散的數(shù)據(jù)類型,在定義PHP變量時不需要指定數(shù)據(jù)類型,數(shù)據(jù)類型是由賦給變量或常量的值自動確定的。當(dāng)不同數(shù)據(jù)類型的變量或常量之間進行運算時,需要先將變量或常量轉(zhuǎn)換成相同的數(shù)據(jù)類型,再進行運算。PHP數(shù)據(jù)類型轉(zhuǎn)換分為自動類型轉(zhuǎn)換和強制類型轉(zhuǎn)換。自動類型轉(zhuǎn)換是指PHP預(yù)處理器根據(jù)運算需要,自動將變量轉(zhuǎn)換成合適的數(shù)據(jù)類型再進行運算。例如,浮點數(shù)在與整數(shù)進行算術(shù)運算時,PHP預(yù)處理器會先將整數(shù)轉(zhuǎn)換成浮點數(shù),然后再進行算術(shù)運算。強制類型轉(zhuǎn)換是指程序員通過編程手段強制將某變量或常量的數(shù)據(jù)類型轉(zhuǎn)換成指定的數(shù)據(jù)類型。【例2-2】2.2PHP的數(shù)據(jù)類型5.數(shù)據(jù)類型的轉(zhuǎn)換

PHP提供了2種強制類型轉(zhuǎn)換的方法。1)在變量前面加上一個小括號,然后把目標數(shù)據(jù)類型寫在小括號中。詳情可參見表2-5。2)使用通用類型轉(zhuǎn)換函數(shù)settype()。boolsettype(變量名,"數(shù)據(jù)類型");示例,settype($c,"int");2)使用類型轉(zhuǎn)換函數(shù)intval()、strval()、floatval()。詳情可參見表2-6。類型轉(zhuǎn)換注意事項有以下幾方面。(1)轉(zhuǎn)換為布爾型空值null、整數(shù)0、浮點數(shù)0_0、字符串"0"、未賦值的變量或數(shù)組都會被轉(zhuǎn)換成false,其他的為true。(2)轉(zhuǎn)換為整型:布爾型的false轉(zhuǎn)為0,true轉(zhuǎn)為1;浮點數(shù)的小數(shù)部分會被舍去;以數(shù)字開頭的字符串截取到非數(shù)字位,否則為0。(2)字符串轉(zhuǎn)換為數(shù)值型:當(dāng)字符串轉(zhuǎn)換為整型或浮點型時,如果字符是以數(shù)字開頭的,就會先把數(shù)字部分轉(zhuǎn)換為整型,再舍去后面的字符串,如果數(shù)字中含有小數(shù)點,則會取到小數(shù)點前一位。2.2PHP常量常量是指在程序運行過程中始終保持不變的數(shù)據(jù)。常量的值被定義后,在程序的整個執(zhí)行期間,這個值都有效,不需要也不可以再次對該常量進行賦值。PHP提供兩種常量,分別是系統(tǒng)預(yù)定義常量和自定義常量。2.2.1聲明和使用常量程序員在開發(fā)過程中不僅可以使用PHP預(yù)定義常量,也可以自己定義和使用常量。(1)使用define()函數(shù)定義常量,語法格式如下:Define(“常量名稱","常量值",大小寫是否敏感);"大小寫是否敏感"為可選參數(shù),指定是否大小寫敏感,設(shè)定為true表示不敏感,默認大小寫敏感,即默認為false。(2)使用defined()函數(shù)判斷常量是否已經(jīng)被定義,語法格式如下:booldefined(常量名稱);說明:如果成功則返回true,失敗則返回false。2.2.2預(yù)定義常量

PHP中提供了大量預(yù)定義常量,用于獲取PHP中相關(guān)系統(tǒng)參數(shù)信息,但不能任意更改這些常量的值。有些常量是由擴展庫所定義的,只有加載了相關(guān)擴展庫才能使用。常用PHP預(yù)定義常量見表2-7所示?!纠?-4】使用系統(tǒng)預(yù)定義常量輸出PHP相關(guān)系統(tǒng)參數(shù)信息。在“<body>”后輸入以下PHP代碼:<?phpecho"當(dāng)前操作系統(tǒng)為:".PHP_OS;echo"<br/>當(dāng)前PHP版本為:".PHP_VERSION;echo"<br/>當(dāng)前文件路徑為:".__FILE__;echo"<br/>當(dāng)前行數(shù)為:".__LINE__;echo"<br/>當(dāng)前行數(shù)為:".__LINE__;?>2.4PHP變量2.4.1變量聲明及使用變量用于存儲臨時數(shù)據(jù)信息,變量通過變量名實現(xiàn)內(nèi)存數(shù)據(jù)的存取操作。定義變量時,系統(tǒng)會自動為該變量分配一個存儲空間來存放變量的值。PHP中的變量用一個美元符號后面跟變量名來表示,變量名是區(qū)分大小寫的。變量的命名規(guī)則與標識符相同,由于PHP是弱類型語言,所以變量不需要先聲明,就可以直接進行賦值使用。聲明變量的語法格式如下:$變量名=變量值變量賦值就是為變量賦予具體的數(shù)據(jù)值。變量賦值有2種方式,分別是直接賦值、傳值賦值和引用賦值。2.4.1變量聲明及使用直接賦值就是使用賦值運算符“=”直接將數(shù)據(jù)值賦給某變量。示例:$a=122;//整型$b=122.56//浮點型$c=”howareyou”;//字符串型$d=true;//布爾型1.直接賦值2.傳值賦值傳值賦值就是使用賦值運算符“=”將一個變量的值賦給另一個變量。值得注意的是,此時修改一個變量的值不會影響到另一個變量。示例:$a=122;$b=$a;//傳值賦值$a=200;2.4.1變量聲明及使用引用允許用兩個變量來指向同一個內(nèi)容,引用賦值也稱傳地址賦值,使用引用賦值,簡單地將一個&符號加到將要賦值的變量前來實現(xiàn)將一個變量的地址傳遞給另一個變量,即兩個變量共同指向同一個內(nèi)存地址,使用的是同一個值。如【例2-5】。變量引用賦值的工作原理如下:(1)首先定義一個變量a并賦值122,此時內(nèi)存為a分配一個空間,存儲值為122。(2)接著定義一個變量b,然后將變量a的地址賦給變量b,此時內(nèi)存將變量b指向變量a的地址,即變量a與變量b指向的是同一個地址。(2)修改變量a或變量b的值為200,此時內(nèi)存中修改同一地址的值。(4)有一事項必須指出,那就是只有有名字的變量才可以引用賦值。2.引用賦值2.4.2可變變量可變變量是一種特殊的變量,這種變量的名稱由另一個變量的值來確定,也就是用一個變量的“值”作為另一個變量的“名”。聲明可變變量的方法是在變量名稱前面加兩個“$”符號,語法格式如下:$$可變變量名稱=可變變量的值如【例2-6】2.4.2變量作用域變量的作用域是指變量在哪些地方可以被使用,在哪些地方不能被使用。一般情況下,變量的作用范圍是包含變量的PHP程序塊。

PHP中的變量按其作用域的不同主要分為4種,分別為局部變量、函數(shù)參數(shù)、全局變量和靜態(tài)變量。在函數(shù)內(nèi)部聲明的變量就是局部變量,它保存在內(nèi)存的棧中,所以速度很快。其作用域是所在函數(shù),即從定義變量的語句開始到函數(shù)末尾。在函數(shù)之外無效,而且在函數(shù)調(diào)用結(jié)束后被系統(tǒng)自動回收。1.局部變量函數(shù)參數(shù)可以按值傳遞,也可以按引用傳遞。任何接受參數(shù)的函數(shù)都必須在函數(shù)首部中聲明這些參數(shù)。2.函數(shù)參數(shù)2.4.2變量作用域全局變量是指在所有函數(shù)之外定義的變量,其作用域是整個PHP文件,即從定義變量的語句開始到文件末尾,但在函數(shù)內(nèi)元效。如果要在函數(shù)內(nèi)部訪問全局變量,要使用GLOBAL關(guān)鍵詞聲明,其語法格式如下:global$變量名;2.全局變量無論是全局變量還是局部變量,在調(diào)用結(jié)束后,該變量值將會失效。但有時仍然需要該變量,此時就需要將該變量聲明為靜態(tài)變量,靜態(tài)變量在函數(shù)退出時不會丟失值,并且再次調(diào)用此函數(shù)時還能保留這個值。聲明靜態(tài)變量只需在變量前加static關(guān)鍵字即可,語法格式如下:static$變量名=變量值;4.靜態(tài)變量2.4.4變量的生存周期變量不僅有其特定的作用范圍,還有其存活的周期--生命周期。變量的生命周期指的是變量可被使用的一個時間段,在這個時間段內(nèi)變量是有效的,一旦超出這個時間段變量就會失效,就不能夠再訪問到該變量的值了。

PHP對變量的生命周期有如下規(guī)定:局部變量的生命周期為其所在函數(shù)被調(diào)用的整個過程。當(dāng)局部變量所在的函數(shù)結(jié)束時,局部變量的生命周期也隨之結(jié)束。全局變量的生命周期為其所在的".php"腳本文件被調(diào)用的整個過程。當(dāng)全局變量所在的腳本文件結(jié)束調(diào)用時,則全局變量的生命周期結(jié)束。2.5PHP運算符運算符是一些用于將數(shù)據(jù)按一定規(guī)則進行運算的特定符號的集合。運算符所操作的數(shù)據(jù)被稱為操作數(shù),運算符和操作數(shù)連接并可運算出結(jié)果的式子被稱為表達式。PHP的運算符分為7類,包括算術(shù)運算符、字符串運算符、賦值運算符、位運算符、邏輯運算符、比較運算符和三元運算符,見表2-8所示。算術(shù)運算符用于處理算術(shù)運算操作,PHP中常用的算術(shù)運算符見表2-9所示。1.算術(shù)運算符

PHP中字符串運算符只有一個,就是英文句號".",用于將兩個字符串連接起來,結(jié)合成一個新的字符串,語法格式如下:$c=$a.$b;2.字符串運算符【例2-7】2.5PHP運算符賦值運算符主要用于處理表達式的賦值操作,先將右邊表達式進行運算,再將結(jié)果值賦給左邊的變量。賦值運算符分為簡單賦值運算符和復(fù)合賦值運算符,簡單賦值運算符為“=”,復(fù)合賦值運算符包括+=、-=、*=、/=、%=、<<=、>>=等,詳見表2-10。2.賦值運算符自增運算符“++”和自減運算符“--”屬于特殊的算術(shù)運算符,它們用于對數(shù)值型數(shù)據(jù)進行操作。不過自增和自減運算符的運算對象是單操作數(shù),使用“++”或“--”運算符,根據(jù)書寫位置不同,又分為前置自增(減)運算符和后置自增(減)運算符。見表2-11所示。4.遞增遞減運算符

PHP中的位運算符主要用于整數(shù)的運算,運算時先將整數(shù)轉(zhuǎn)換為相應(yīng)的二進制數(shù),然后再對二進制數(shù)進行運算,PHP中的位運算符見表2-12所示。5.位運算符2.5PHP運算符邏輯運算符用于處理邏輯運算操作,對布爾型數(shù)據(jù)或表達式進行操作,并返回布爾型結(jié)果。PHP的邏輯運算符見表2-12所示。6.邏輯運算符比較運算符用于對兩個數(shù)據(jù)或表達式的值進行比較,比較結(jié)果是一個布爾類型值。PHP中的比較運算符如表2-14所示。7.比較運算符條件運算符也稱為三元運算符,提供簡單的邏輯判斷,語法格式如下:表達式1?表達式2:表達式2如果表達式1的值為true,則執(zhí)行表達式2,否則執(zhí)行表達式2。示例:$c=($a>$b)?$a:$b;8.條件運算符2.5PHP運算符

PHP支持一個錯誤控制運算符:@。當(dāng)將其放置在一個PHP表達式之前,該表達式可能產(chǎn)生的任何錯誤信息都被忽略掉。@運算符只對表達式有效。一個簡單的規(guī)則就是:如果能從某處得到值,就能在它前面加上@運算符。9.錯誤控制運算符

PHP支持一個執(zhí)行運算符:一對反引號“``”,注意這不是單引號。PHP將把運算符內(nèi)的字符作為外殼命令來執(zhí)行,其作用與shell_exec()函數(shù)相同。反引號運算符在激活了安全模式或者關(guān)閉了shell_exec()時是無效的。10.執(zhí)行運算符

表2-15從高到低列出了運算符的優(yōu)先級。同一行中的運算符具有相同優(yōu)先級,此時它們的結(jié)合方向決定求值順序,必要時可以用括號來強制改變優(yōu)先級,從而增加可讀性。11.運算符優(yōu)先級$output=`ipconfig`;echo"<pre>$output</pre>";2.6PHP的表達式表達式就是由操作數(shù)、操作符以及括號等所組成的合法序列。將相同數(shù)據(jù)類型或不同數(shù)據(jù)類型的數(shù)據(jù)(如變量、常量、函數(shù)等),用運算符號按一定的規(guī)則連接起來的、有意義的語句。示例:$a=122;根據(jù)表達式中運算符類型的不同,可以將表達式分為:算術(shù)表達式、字符串表達式、賦值表達式、位運算表達式、邏輯表達式、比較表達式等。PHP程序由語句構(gòu)成,每條語句以英文分號";"結(jié)束。每條語句一般單獨占用一行。2.7PHP函數(shù)函數(shù)是將一些重復(fù)使用到的功能寫在一個獨立的程序塊中,在需要時以便單獨調(diào)用。2.7.1自定義函數(shù)

PHP函數(shù)分為系統(tǒng)內(nèi)建函數(shù)和用戶自定義函數(shù)兩種。PHP的真正力量來自它的函數(shù):它擁有超過1000個內(nèi)建的函數(shù)。除了內(nèi)建的PHP函數(shù),還可以創(chuàng)建自定義函數(shù)。自定義函數(shù)的語法格式如下:functio函數(shù)名($str1,$str2){函數(shù)體;return返回值;}1.函數(shù)的定義頁面加載時函數(shù)不會立即執(zhí)行,函數(shù)只有在被調(diào)用時才會執(zhí)行。函數(shù)的調(diào)用可以在函數(shù)定義之前或之后,調(diào)用函數(shù)的語法格式如下:函數(shù)名(實際參數(shù)列表);2.函數(shù)的調(diào)用【例2-8】用自定義函數(shù)的方法求兩個數(shù)的和2.7.2函數(shù)的參數(shù)函數(shù)的使用經(jīng)常需要用到參數(shù),參數(shù)可以將數(shù)據(jù)傳遞給函數(shù)。在調(diào)用函數(shù)時需要輸入與函數(shù)的形式參數(shù)個數(shù)和類型相同的實際參數(shù),實現(xiàn)數(shù)據(jù)從實際參數(shù)到形式參數(shù)的傳遞。參數(shù)傳遞方式有值傳遞、引用傳遞和默認參數(shù)2種。1.值傳遞引用傳遞也稱為按地址傳遞,就是將實際參數(shù)的內(nèi)存地址傳遞到形式參數(shù)中。此時被調(diào)用函數(shù)內(nèi)形式參數(shù)的值若發(fā)生改變,則實際參數(shù)也發(fā)生相應(yīng)改變,引用傳遞的語法格式如下為定義函數(shù)時,在形式參數(shù)前面加上&符號:function函數(shù)名(&$strl,&$str2,…){……}//定義函數(shù)函數(shù)名($a1,$a2,…);//調(diào)用函數(shù)2.引用傳遞【例2-10】值傳遞是指將實際參數(shù)的值復(fù)制到對應(yīng)的形式參數(shù)中,然后使用形式參數(shù)在被調(diào)用函數(shù)內(nèi)部進行運行,運算的結(jié)果不會影響到實際參數(shù),即函數(shù)調(diào)用結(jié)束后,實際參數(shù)的值不會發(fā)生改變?!纠?-9】2.7.2函數(shù)的參數(shù)默認參數(shù)也稱可選參數(shù),在定義函數(shù)時可以指定某個參數(shù)為可選參數(shù),將可選參數(shù)放在參數(shù)列表末尾,并且指定其默認值,默認值可以在函數(shù)調(diào)用時進行更改。示例:functionadd($a,$b=100){……}//函數(shù)定義add(200,122)//調(diào)用函數(shù)時,為可選參數(shù)賦值add(200)//調(diào)用函數(shù)時,沒有給可選參數(shù)賦值2.默認參數(shù)2.7.2函數(shù)返回值函數(shù)將返回值傳遞給調(diào)用者的方式是使用關(guān)鍵字return。當(dāng)執(zhí)行到一個return語句時,返回,后面的語句不再執(zhí)行,將會終止程序的執(zhí)行。示例:functionGetSum($a,$b)//定義函數(shù),不需要聲明返回值及類型

{ return$a+$b; }$c=GetSum(122,200);//調(diào)用函數(shù),獲取返回值

echo$c;2.7.4內(nèi)置函數(shù)

PHP內(nèi)置函數(shù)是由PHP開發(fā)者編寫并嵌入到PHP中,用戶在編寫程序時可以直接使用。PHP內(nèi)置函數(shù)又可以分為標準函數(shù)庫和擴展函數(shù)庫,標準函數(shù)庫中的函數(shù)存放在PHP內(nèi)核中,可以在程序中直接使用,擴展函數(shù)庫中的函數(shù)被封裝在相應(yīng)的DLL文件中,使用時需要在PHP配置文件中將相應(yīng)的DLL文件包含進來。1.變量函數(shù)庫

PHP提供了大量的字符串處理函數(shù),可以幫助用戶完成許多復(fù)雜的字符串處理工作,在實際的開發(fā)中有著非常重要作用。常用的PHP字符串函數(shù)見表2-17所示。2.字符串函數(shù)庫

PHP變量函數(shù)庫提供了一系列用于變量處理的函數(shù),常用的PHP變量函數(shù)見表于2-16所示。

PHP提供了實用的日期時間處理函數(shù),可以幫助用戶完成對日期和時間的各種處理工作。常用的PHP日期時間函數(shù)見表于2-18所示。2.日期時間函數(shù)2.7.4內(nèi)置函數(shù)4.PHP數(shù)學(xué)函數(shù)庫

PHP提供了大量的文件及目錄處理函數(shù),可以幫助用戶完成對文件和目錄的各種處理操作,常用的PHP文件目錄函數(shù)見表2-20所示。5.PHP文件目錄函數(shù)庫

PHP提供了實用的數(shù)學(xué)處理函數(shù),可以幫助用戶完成對數(shù)學(xué)運算的各種操作。常用的PHP數(shù)學(xué)函數(shù)見表2-19所示?!纠?-11】2.8PHP數(shù)組數(shù)組是一組相同類型數(shù)據(jù)連續(xù)存儲的集合,這一組數(shù)據(jù)在內(nèi)存中的空間是相鄰的,每個空間存儲了1個數(shù)組元素。數(shù)組中的數(shù)據(jù)稱為數(shù)組元素,每個元素包含一個“鍵”和一個“值”,通過“健=>值”形式表示,其中,“鍵”是數(shù)組元素的識別名稱,也被數(shù)組稱為數(shù)組下標,“值”是數(shù)組元素的內(nèi)容。“鍵”和“值”之間使用“=>”連接,數(shù)組各個元素之間使用逗號“,”分隔,最后一個元素后面的逗號可以省略。數(shù)組根據(jù)下標的數(shù)據(jù)類型,可分為索引數(shù)組和關(guān)聯(lián)數(shù)組。索引數(shù)組是下標為整型的數(shù)組,默認下標從0開始,也可以自己指定;而關(guān)聯(lián)數(shù)組是下示為字符串的數(shù)組。數(shù)組中只要有一個下標不是數(shù)字,該數(shù)組就是關(guān)聯(lián)數(shù)組。2.8.1數(shù)組的使用1.定義數(shù)組(1)使用賦值方式定義數(shù)組使用賦值方式定義數(shù)組就是創(chuàng)建一個數(shù)組變量,然后使用賦值運算符直接給變量賦值,語法格式如下:$數(shù)組名[下標1]=元素值1;$數(shù)組名[下標2]=元素值2;數(shù)組下標(鍵名)可以是數(shù)字也可以是字符串,每個下標都對應(yīng)著數(shù)組元素在數(shù)組中的位置,元素值可以是任何值。(2)使用array()函數(shù)定義數(shù)組使用array()函數(shù)定義數(shù)組就是將數(shù)組的元素作為參數(shù),“鍵”和值之間用“=>”連接,各元素之間用逗號“,”隔開,語法格式如下:$數(shù)組名=array(“下標1”=>”元素值1”,“下標1”=>”元素值1”,…);2.8.1數(shù)組的使用2.數(shù)組的賦值對數(shù)字索引數(shù)組的賦值較簡單,根據(jù)索引號對數(shù)組元素進行賦值和取值。索引號由數(shù)字組成,從0開始。關(guān)聯(lián)數(shù)組的索引關(guān)鍵字是"鍵名",只能根據(jù)"鍵名"對數(shù)組元素進行賦值和取值。2.8.1數(shù)組的使用2.遍歷數(shù)組(1)foreach語句遍歷數(shù)組foreach($arrayas$key=>$value){//方法l訪問數(shù)組元素的鍵和值echo"$key-->$value";}foreach($arrayas$value){//方法2訪問數(shù)組元素值echo$value;}

(2)for語句遍歷數(shù)組for($i=0;$i<count($array);$i++){//for語句只能用于數(shù)字索引數(shù)組的遍歷echo$array[$i].”<br>”;}【例2-12】2.8.2數(shù)組函數(shù)為了便于數(shù)組的操作也為程序員方便程序的編寫提高效率,PHP提供了許多內(nèi)置的數(shù)組函數(shù),常用的數(shù)組函數(shù)見表2-21所示?!纠?-12】2.8.2全局數(shù)組全局數(shù)組是PHP中特殊定義的數(shù)組變量,又稱為PHP預(yù)定義數(shù)組,是由PHP引擎內(nèi)置的,不需要開發(fā)者重新定義,在PHP腳本運行時,PHP會自動將一些數(shù)據(jù)放在全局數(shù)組中。之所以稱為全局數(shù)組是因為這些數(shù)組在腳本中的任何地方、任何作用域內(nèi)都可以訪問,如函數(shù)、類、文件等。PHP中的全局數(shù)組包括以下幾個,見表2-22所示。

$_SERVER[]全局數(shù)組可以獲取服務(wù)器端和瀏覽器端的有關(guān)信息,常用的$_SERVER[]全局數(shù)組見表2-22所示。

$_POST[]全局數(shù)組廣泛用于收集提交method="post"的HTML表單后的表單數(shù)據(jù)。$_POST也常用于傳遞變量。

$_GET也可用于收集提交HTML表單(method="get")之后的表單數(shù)據(jù)。$_GET也可以收集URL中的發(fā)送的數(shù)據(jù)。

$_FILES[]數(shù)組用于獲取上傳文件的相關(guān)信息,包括文件名、文件類型和文件大小等。如果上傳單個文件,則該數(shù)組為二維數(shù)組;如果上傳多文件,則該數(shù)組為三維數(shù)組。$_FILES[]數(shù)組的具體參數(shù)取值見表2-24所示。2.9實訓(xùn)1、寫一個程序輸出當(dāng)前系統(tǒng)時間。2、寫一個程序?qū)崿F(xiàn)對輸入的字符串用md5的方式進行加密。2、寫一個程序?qū)崿F(xiàn)網(wǎng)站敏感詞匯的過濾。4、寫一個程序?qū)崿F(xiàn)對中文字符串的截取。5、編寫一個隨機抽獎程序。項目三

PHP流程控制學(xué)習(xí)目標1、了解算法概念和常用描述方法2、掌握結(jié)構(gòu)化程序設(shè)計方法的思想和特點3、掌握條件和循環(huán)控制語句4、了解包含語夠的使用方法3.1流程控制簡介3.1.1算法算法是解決問題方法的精確描述。一個算法應(yīng)該具有以下五個重要的特征:(1)有窮性(2)確切性(3)輸入項(4)輸出項(5)可行性3.1.2算法的描述方法用自然語言表示算法,通俗易懂。特別適用于對順序程序結(jié)構(gòu)算法的描述。即使是不熟悉計算機語言的人也很容易理解程序。1.自然語言偽代碼是介于自然語言和計算機語言之間的文字和符號,它與一些高級編程語言類似,但是不需要真正編寫程序時所要遵循的嚴格規(guī)則。偽代碼用一種從頂?shù)降?,易于閱讀的方式表示算法。在程序開發(fā)期間,偽代碼經(jīng)常用于“規(guī)劃”一個程序,然后再轉(zhuǎn)換成某種語言程序。2.偽代碼3.1.2算法的描述方法傳統(tǒng)流程圖,使用不同的幾何圖形來表示不同性質(zhì)的操作,使用流程線來表示算法的執(zhí)行方向,比起前兩種描述方式,其具有直觀形象、邏輯清楚、易于理解等特點。3.傳統(tǒng)流程圖

N-S圖也被稱為盒圖或CHAPIN圖,即由一些基本的框組成一個大的框,這種流程圖又稱為N-S結(jié)構(gòu)流程圖。

N-S圖包括順序、選擇和循環(huán)三種基本結(jié)構(gòu)。4.N-S結(jié)構(gòu)化流程圖3.1.3結(jié)構(gòu)化程序設(shè)計結(jié)構(gòu)化程序設(shè)計是進行以模塊功能和處理過程設(shè)計為主的詳細設(shè)計的基本原則。結(jié)構(gòu)化程序設(shè)計是過程式程序設(shè)計的一個子集,它對寫入的程序使用邏輯結(jié)構(gòu),使得理解和修改更有效更容易。結(jié)構(gòu)化程序設(shè)計方法有如下幾個特點:

1.自頂向下

2.逐步細化

3.模塊化

4.結(jié)構(gòu)化編碼結(jié)構(gòu)化編碼過程中,要遵循以下幾個主要的原則:(1)盡可能使用語言提供的基本控制結(jié)構(gòu):順序結(jié)構(gòu)、條件結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。(2)選用的控制結(jié)構(gòu)只準許有一個入口和一個出口。(3)利用程序內(nèi)部函數(shù),把程序組織成容易識別的內(nèi)部函數(shù)模塊,每個模塊只有一個入口或一個出口,一般不超過200行。(4)復(fù)雜結(jié)構(gòu)應(yīng)該用基本控制結(jié)構(gòu)組合或嵌套來實現(xiàn)。3.2條件控制語句條件控制結(jié)構(gòu)用于實現(xiàn)分支程序設(shè)計,就是對給定條件進行判斷,條件為真時執(zhí)行一個程序分支,條件為假時執(zhí)行另一個程序分支。PHP提供的條件控制語句包括if條件控制語句和switch多分支語句。3.2.1if條件語句

if(條件表達式){程序塊}如果條件表達式的值為真,則執(zhí)行其后的語句塊,否則不執(zhí)行該語句塊。1.基本形式:if形式2.第二種形式:if-else形式

if(條件表達式)

{程序塊1}

else

{程序塊2}3.第三種形式:if-else-if形式

if(條件表達式1){語句塊1}

elseif(條件表達式2){語句塊2}

elseif(條件表達式3){語句塊3}

elseif(條件表達式m){語句塊m}

else{語句塊n}【例4-1】3.2.2switch多分支語句

switch(條件表達式){

case值1:程序塊1;

break;

case值2:程序塊2;

break;

default:程序塊n;

break;

}將條件表達式的值與case子句的值逐一進行比較,如有匹配,則執(zhí)行該case子句對應(yīng)的程序塊,不等于任何case值就執(zhí)行default分支。【例3-2】3.3循環(huán)控制語句循環(huán)結(jié)構(gòu)是在一定條件下反復(fù)執(zhí)行某段程序的流程結(jié)構(gòu),被反復(fù)執(zhí)行的程序被稱為循環(huán)體。循環(huán)語句是由循環(huán)體及循環(huán)的終止條件兩部分組成的。3.3.1while循環(huán)語句

while循環(huán)語句屬于前測試型循環(huán)語句,即先判斷后執(zhí)行。執(zhí)行順序是先判斷表達式,當(dāng)條件為真時反復(fù)執(zhí)行循環(huán)程序塊;當(dāng)條件為假時,跳出循環(huán),繼續(xù)執(zhí)行循環(huán)后面的語句。while循環(huán)語句語法格式如下:while(條件表達式){//先判斷條件,當(dāng)條件滿足時執(zhí)行語句塊,否則不執(zhí)行程序塊;//反復(fù)執(zhí)行,直到條件表達式為假}【例3-3】3.3.2do…while循環(huán)語句

do…while循環(huán)語句屬于后測試型循環(huán)語句,即先執(zhí)行后判斷。執(zhí)行順序是執(zhí)行一次循環(huán)程序塊,再判斷表達式,當(dāng)條件為真時反復(fù)執(zhí)行循環(huán)程序塊;當(dāng)條件為假時,跳出循環(huán),繼續(xù)執(zhí)行循環(huán)后面的語句。do…while循環(huán)語句語法格式如下:do{程序塊;}while(條件表達式)

while語句和do...while語句對于條件表達式一開始時就為真的情況,兩種結(jié)構(gòu)是沒有區(qū)別的。如果條件表達式一開始就為假,則while語句不執(zhí)行任何語句就跳出循環(huán),do…while語句則執(zhí)行一次循環(huán)之后才跳出循環(huán)。【例3-3】3.3.3for循環(huán)語句當(dāng)不知道所需重復(fù)循環(huán)的次數(shù)時,使用while或do…while吾句,如果知道循環(huán)次數(shù)時,可以使用for語句,語法格式如下:for(expr1;expr2;expr3){statement;}

expr1:條件初始值;expr2:循環(huán)條件;expr3循環(huán)增量;statement:循環(huán)體。

for語句執(zhí)行過程是:先執(zhí)行expr1,接著執(zhí)行expr2,并對expr2的值進行判斷,如果為true,則執(zhí)行statement循環(huán)體,否則結(jié)束循環(huán),跳出for循環(huán)語句;最后執(zhí)行expr3,對循環(huán)增量進行計算后,返回執(zhí)行expr2進入下一輪循環(huán)?!纠?-5】3.3.4foreach循環(huán)

foreach語法結(jié)構(gòu)提供了遍歷數(shù)組的簡單方式。

foreach僅能夠應(yīng)用于數(shù)組和對象,如果嘗試應(yīng)用于其他數(shù)據(jù)類型的變量,或者未初始化的變量將發(fā)出錯誤信息??蓞⒁?.8.1。3.4跳轉(zhuǎn)控制語句

break跳轉(zhuǎn)語句用于終止并跳出當(dāng)前的控制結(jié)構(gòu),可以用于switch語句、while吾句、do…while語句和for循環(huán)語句。1.使用break跳出循環(huán)2.使用continue跳出循環(huán)

continue跳轉(zhuǎn)語句的作用是終止本次循環(huán),跳轉(zhuǎn)到循環(huán)條件判斷處,繼續(xù)進入下一輪循環(huán)判斷。3.使用goto跳出循環(huán)

goto可以用來跳轉(zhuǎn)到程序中的另一位置。該目標位置可以用目標名稱加上冒號來標記,而跳轉(zhuǎn)指令是goto之后接上目標位置的標記。goto可以跳出循環(huán)或者switch,通常的用法是用goto代替多層的break?!纠?-6】【例3-7】【例3-8】4.return語句

return語句是用來結(jié)束一段代碼,并返回一個參數(shù)的值??梢詮囊粋€函數(shù)里調(diào)用,也可以從一個include或者require語句包含的文件里來調(diào)用,也可以是在主程序里調(diào)用。如果是在函數(shù)里調(diào)用程序?qū)R上結(jié)束運行并返回參數(shù),如果是include或者require語句包含的文件中被調(diào)用,程序執(zhí)行將會馬上返回到調(diào)用該文件的程序,而返回值將作為include或者require的返回值。如果是在主程序中調(diào)用,那么主程序?qū)R上停止執(zhí)行。3.5包含語句在編寫程序的過程中會發(fā)現(xiàn),有些程序代碼將在項目中重復(fù)使用,那么可以將這些代碼單獨編寫在一個文件中,在需要使用這些代碼時將該文件包含進來即可。PHP提供了4種包含語句,其語法如下:voidinclude("文件名");voidinclude_once("文件名");voidrequire("文件名”);voidrequire_once("文件名");使用include()函數(shù)包含文件時,只有程序執(zhí)行到該語句時才將文件包含進來,當(dāng)所包含文件發(fā)生錯誤時,系統(tǒng)只給出警告,繼續(xù)執(zhí)行。當(dāng)多次調(diào)用相同文件時,程序會多次包含文件。

include_once()函數(shù)與include()函數(shù)幾乎相同,唯一區(qū)別在于,當(dāng)多次調(diào)用相同文件時,程序只包含文件一次。使用require()函數(shù)包含文件時,程序一開始運行時就將所需調(diào)用的文件包含進來,當(dāng)所包含文件發(fā)生錯誤時,系統(tǒng)輸出錯誤信息并立即終止程序執(zhí)行。

require_once()函數(shù)與require()函數(shù)幾乎相同,唯-的區(qū)別在于,當(dāng)多次調(diào)用相同文件時,程序只包含文件一次?!纠?-9】3.6實訓(xùn)1、輸入1~10的一個數(shù)字,輸出以該數(shù)字打頭的一個成語。2、輸入一個年月,輸出該月天數(shù)。3、根據(jù)當(dāng)前日期判斷星期天數(shù),給出相應(yīng)的提示信息。4、輸出一個偶數(shù)乘法表。5、開發(fā)一個簡單的網(wǎng)頁版計算器,能實現(xiàn)加、減、乘和除等運算。項目四

PHP開發(fā)基礎(chǔ)學(xué)習(xí)目標1、了解正則表達式的語法規(guī)則并能使用正則函數(shù)2、掌握表單的設(shè)計、驗證和安全提交等用法3、掌握Cookie的原理和用法4、掌握Session的原理和用法5、了解PHP對圖形圖像處理4.1正則表達式4.1.1簡介正則表達式是一個從左到右匹配目標字符串的模式。給定一個正則表達式和另一個字符串,可以達到如下的目的:

1.給定的字符串是否符合正則表達式的匹配;

2.可以通過正則表達式,從字符串中獲取特定部分。正則表達式的特點是:

1.靈活性、邏輯性和功能性非常的強;

2.可以迅速地用極簡單的方式達到字符串的復(fù)雜控制。示例--全是數(shù)字且至少為5位:

^\d{5,}$4.1.2語法模式中的這種有特殊涵義的編碼字符稱為元字符。常見的元字符如表5-1所示。1.元字符正則表達式用一些重復(fù)規(guī)則來表達循環(huán)匹配。常用的重復(fù)規(guī)則見表5-2所示。2.重復(fù)普通字符包括沒有顯式指定為元字符的所有可打印和不可打印字符。3.普通字符分枝是指制定幾個規(guī)則,如果滿足任意一種規(guī)則,則都當(dāng)作匹配成功。具體來說就是用“|”符號把各種規(guī)則分開,且條件從左至右匹配。4.分枝4.1.2語法在正則表達式中,可以用小括號將一些規(guī)則括起來當(dāng)作分組,分組可以作為一個元字符來看待。5.分組正則表達式默認的情況下,會在滿足匹配條件下盡可能的匹配更多內(nèi)容,這就是貪婪匹配。在滿足匹配條件的情況下盡可能的匹配更少的內(nèi)容,這就是懶惰匹配。常用的懶惰限定符見表5-3所示。6.貪婪與懶惰模式修正符是標記在整個正則表達式之外的,可以看著是對正則表達式的一些補充說明,常用的模式修正符見表5-4所示。7.模式修正符4.1.3應(yīng)用正則表達式主要用于:(1)正則匹配:根據(jù)正則表達式匹配相應(yīng)的內(nèi)容。(2)正則替換:根據(jù)正則表達式匹配內(nèi)容并替換。(3)正則分割:根據(jù)正則表達式分割字符串。在PHP中有兩類正則表達式函數(shù),一類是Perl兼容正則表達式函數(shù),一類是POSIX擴展正則表達式函數(shù)。二者差別不大,但在PHP7中僅僅支持Perl兼容正則表達式函數(shù)。4.1.3應(yīng)用用于進行正則表達式匹配,成功返回1,否則返回0。語法如下:intpreg_match(stringpattern,stringsubject[,arraymatches])1.preg_match()用于進行正則表達式全局匹配,成功返回整個模式匹配的次數(shù)(可能為零),如果出錯返回FALSE。語法如下所示:intpreg_match_all(stringpattern,stringsubject,arraymatches[,intflags])2.preg_match_all()【例4-1】4.1.3應(yīng)用正則匹配中文漢字根據(jù)頁面編碼不同而略有區(qū)別:(1)GBK/GB2312編碼:[x80-xff]+或[xa1-xff]+(2)UTF-8編碼:[x{4e00}-x{9fa5}]+/u3.正則匹配中文漢字

preg_replace()函數(shù)用于正則表達式的搜索和替換。語法如下:mixedpreg_replace(mixedpattern,mixedreplacement,mixedsubject[,intlimit])4.正則替換

preg_split()函數(shù)用于正則表達式分割字符串。語法如下:arraypreg_split(stringpattern,stringsubject[,intlimit[,intflags]])如果不需要正則表達式的威力,則使用explode()更快,這樣就不會招致正則表達式引擎的浪費。5.分割字符串4.2表單4.2.1表單設(shè)計表單在電子商務(wù)網(wǎng)站前臺以及動態(tài)網(wǎng)站的后臺管理中都有廣泛的應(yīng)用?!纠?-2】用戶注冊頁面4.2.2表單驗證表單在提交到服務(wù)器前,一般需要對用戶輸入的數(shù)據(jù)進行有效性驗證。數(shù)據(jù)驗證,可以使用JavaScript來進行。由于瀏覽器眾多,直接使用JavaScript需要作瀏覽器兼容性設(shè)計,這樣難免難度有點大。對此,jQueryValidate插件有著良好的兼容性,讓客戶端表單驗證變得更簡單,同時提供了大量的定制選項,滿足應(yīng)用程序各種需求。該插件捆綁了一套有用的驗證方法,包括URL和電子郵件驗證,同時提供了一個用來編寫用戶自定義方法的API。目前最新版本是1.15.0,其官方下載地址為:【例4-3】/files/jquery-validation-1.15.0.zip,下載解壓后將其中的文件“dist/jquery.validate.js”、“dist/jquery.validate.min.js”、“dist/additional-methods.js”、“dist/additional-methods.min.js”、“dist/localization/messages_zh.js”拷貝到“D:\PHP\CH05\js”中以備后用。注意,“js/jquery.validate.extend.js”是需要自行添加的程序。4.2.3表單提交用jQueryValidate對表單數(shù)據(jù)進行有效性驗證后就可以提交表單了。提交表單時可以用其他方式替代表單默認的“SUBMIT”動作。若提交的表單中有敏感的隱私字段如密碼字段,從安全角度考慮則需要加密后再提交表單??蛻舳思用芤话阌肧HA-2,SHA-2包括SHA-224、SHA-256、SHA-384和SHA-512。SHA-256和SHA-512是很新的雜湊函數(shù),前者以定義一個字為32位元,后者則定義一個字為64位元。它們分別使用了不同的偏移量,然而,實際上二者結(jié)構(gòu)是相同的,只在循環(huán)執(zhí)行的次數(shù)上有所差異。SHA-224以及SHA-384則是前述二種雜湊函數(shù)的截短版,利用不同的初始值做計算。CryptoJS是一個純JavaScript寫的加密類庫,包括各種常見的加密算法,本書選擇其中的SHA-512來進行客戶端加密。加密類庫最新版本為CryptoJSv3.1.2,官方下載地址:/archive/p/crypto-js/downloads【例4-4】注意,“js/jquery.validate.extend.login.js”是需要自行添加的程序。下載后解壓,將其中的“rollups/sha512.js”拷貝到“D:\PHP\CH05\js”中以備后用。4.2.4表單數(shù)據(jù)獲取與驗證在表單提交后可用如下方法獲取數(shù)據(jù):

(1)用$_POST獲取以POST方法提交的數(shù)據(jù),其語法如下:$_POST['表單控件名稱'];

(2)用$_GET獲取以GET方法提交的數(shù)據(jù),其語法如下:$_GET['表單制件名稱'];

(3)可用$_REQUEST來獲取以POST、GET方法提交的數(shù)據(jù),其語法如下:$_REQUEST['表單控件名稱'];

(4)用$_FILES來獲取上傳的文件,其語法如下:$_FILES['上傳控件名稱'];//為一數(shù)組,包含上傳文件的所有信息$_FILES['上傳控件名稱']['name'];//客戶端機器文件的原名稱。$_FILES['上傳控件名稱']['type'];/*文件的MIME類型,如"image/gif"。*/$_FILES['上傳控件名稱']['size'];//已上傳文件的大小,單位為字節(jié)。$_FILES['上傳控件名稱']['tmp_name'];//文件被上傳后在服務(wù)端儲存的臨時文件名。$_FILES['上傳控件名稱']['error'];//和該文件上傳相關(guān)的錯誤代碼?!纠?-5】1.表單數(shù)據(jù)獲取4.2.4表單數(shù)據(jù)獲取與驗證對獲取的用戶數(shù)據(jù),不要輕易地相信,因為數(shù)據(jù)很有可能被篡改,所以需要對用戶數(shù)據(jù)進行有效性驗證。驗證數(shù)據(jù),可先用urldecode解碼,再用正則表達式來進行校驗。if(preg_match("/^[A-Za-z]{1}([_A-Za-z0-9]){5,49}$/",urldecode($_POST["username"]))){/*判斷用戶名是否合法:用戶名只能由6-50位字母、數(shù)字或下劃線組成,并且必須以字母開頭*//*用戶名合法,下一步將從數(shù)據(jù)庫中查找該用戶,若存在,則驗證其密碼是否正確*/……}2.

溫馨提示

  • 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

提交評論