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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

PHP基礎案例與項目開發項目1PHP概述.pptx項目2PHP語言基礎.pptx項目3PHP流程控制.pptx項目4PHP開發基礎.pptx項目5MySQL數據庫操作.pptx項目6模板解析.pptx項目7新聞系統.pptx項目8面向對象編程基礎.pptx項目9電子商務系統.pptx項目10微信小程序.pptx全套可編輯PPT課件項目一PHP概述學習目標1、熟悉PHP語言的特點2、掌握PHP在Windows下開發環境的配置3、了解常用的PHP編輯工具4、掌握PHP程序的編寫過程PHP介紹PHP特點PHP工作原理PHP簡介1.1PHP簡介1.1.1PHP概述什么是PHP?

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

PHP的所有應用程序都是通過WEB服務器(如IIS或Apache)和PHP引擎程序解釋執行完成的。發出請求將文件返回瀏覽器服務器端發送給PHP引擎生成HTML文件將文件返回PHP搭建PHP的開發環境方法有很多,本書介紹一種最實用的在Windows的IIS上配置PHP的開發環境,這樣的目地是在此服務器上也可以同時運行.NET程序,比較方便實用。1.2配置開發環境1.2.1WINDOWS7下安裝PHPIIS的安裝(1)開始→控制面板→程序和功能→打開或關閉Windows功能1.2.1WINDOWS7下安裝PHPIIS的安裝(2)按右圖選取必要的功能1.2.1WINDOWS7下安裝PHPIIS的安裝(3)點“確定”后程序執行安裝,完成后其窗口會自動關閉。打開瀏覽器,輸入“http://localhost”后看到右圖所示的頁面就表示IIS安裝成功了。1.2.1WINDOWS7下安裝PHP2.安裝MySQLMySQL可到其官網上下載,具體網址是:/downloads/installer/。選擇適合自己系統的版本。(1)選中下載下來的文件“mysql-installer-community-.msi”,點右鍵選“管理員取得所有權”,這樣使得安裝程序具有足夠的運行權限,防止由于權限不夠而出現的錯誤。雙擊下載的文件“mysql-installer-community-.msi”,若出現如上圖的提示,說明缺少安裝程序所必需的運行環境,則需要安裝Microsoft.NETFramework4。1.2.1WINDOWS7下安裝PHP2.安裝MySQL(2)如出現上圖的提示,則需進行Microsoft.NETFramework4的安裝,否則就可以跳過此步。下載地址:/zh-cn/download/details.aspx?id=17718點擊“下載”,跳過推薦的下載程序,就能成功開始下載:dotNetFx40_Full_x86_x64.exe雙擊下載程序“dotNetFx40_Full_x86_x64.exe”開始安裝,如右圖所示,按提示進行操作即可完成安裝。至此,MySQL5.7的運行環境安裝完成!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”,則在其下面會出現一個鏈接“AdvancedOptios”,點擊這個鏈接,出現一個對話框,可按如圖所示的去選擇安裝路徑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”,輸入數據庫的超級用戶密碼(一定要牢記密碼!),如圖1.2.1WINDOWS7下安裝PHP2.安裝MySQL(9)點擊“Next”,進入“WindowsService”配置頁面,安裝為Windws服務,然后再點擊“Next”,去掉“EnableXPeotocol/MySQLasaDocumentDatabase”前面的勾1.2.1WINDOWS7下安裝PHP2.安裝MySQL(10)點擊“Next”,然后再點擊“Execute”開始執行配置程序,點擊“Log”查看執行配置程序的詳細信息,如圖點擊“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)到官網下載最新版的PHP7:/download選擇適合自己系統的版本下載,這里選擇“VC14x86NonThreadSafe(php-7.0.8-nts-Win32-VC14-x86.zip)”。把下載的壓縮文件“php-7.0.8-nts-Win32-VC14-x86.zip”解壓縮到某一個目錄,如“d:\php708”。打開此目錄,復制文件“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)系統變量的增加與更改點開始→控制面板→系統→高級系統設置→高級→環境變量→系統變量,增加系統變量PHPRC=”D:\php708”;修改系統變量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信息服務(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”,用記事本打開后輸入如下的內容:<?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”復制后并改名為“config.inc.php”,然后用寫字板打開文件:將“$cfg['blowfish_secret']”值設置為任意一個字符串,如圖phpMyAdmin是一個以PHP為基礎,以Web-Base方式架構在網站主機上的MySQL數據庫管理工具,讓管理者可用Web接口管理MySQL數據庫。借由此Web接口可以成為一個簡易方式輸入繁雜SQL語法的較佳途徑,尤其要處理大量資料的匯入及匯出更為方便。1.2.1WINDOWS7下安裝PHP3.PHP7的安裝(6)下載安裝PHP管理工具phpMyAdmin②在瀏覽器地址欄目輸入“http://localhost/phpMyAdmin463”回車,出現登錄頁面,在用戶名中輸入“root”,在密碼中輸入前面設置過的MySQL密碼,如右圖。1.2.1WINDOWS7下安裝PHP3.PHP7的安裝(6)下載安裝PHP管理工具phpMyAdmin③點擊“執行”,即可進入數據庫管理首頁,如圖至此,IIS+PHP7+MySQL全部的安裝設置成功完成!2018年1月4日PHP

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

echo$c;2.7.4內置函數

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1.自頂向下

2.逐步細化

3.模塊化

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

if(條件表達式){程序塊}如果條件表達式的值為真,則執行其后的語句塊,否則不執行該語句塊。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子句的值逐一進行比較,如有匹配,則執行該case子句對應的程序塊,不等于任何case值就執行default分支。【例3-2】3.3循環控制語句循環結構是在一定條件下反復執行某段程序的流程結構,被反復執行的程序被稱為循環體。循環語句是由循環體及循環的終止條件兩部分組成的。3.3.1while循環語句

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

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

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

expr1:條件初始值;expr2:循環條件;expr3循環增量;statement:循環體。

for語句執行過程是:先執行expr1,接著執行expr2,并對expr2的值進行判斷,如果為true,則執行statement循環體,否則結束循環,跳出for循環語句;最后執行expr3,對循環增量進行計算后,返回執行expr2進入下一輪循環。【例3-5】3.3.4foreach循環

foreach語法結構提供了遍歷數組的簡單方式。

foreach僅能夠應用于數組和對象,如果嘗試應用于其他數據類型的變量,或者未初始化的變量將發出錯誤信息。可參見3.8.1。3.4跳轉控制語句

break跳轉語句用于終止并跳出當前的控制結構,可以用于switch語句、while吾句、do…while語句和for循環語句。1.使用break跳出循環2.使用continue跳出循環

continue跳轉語句的作用是終止本次循環,跳轉到循環條件判斷處,繼續進入下一輪循環判斷。3.使用goto跳出循環

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

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

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

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

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

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

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

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

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

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

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

preg_split()函數用于正則表達式分割字符串。語法如下:arraypreg_split(stringpattern,stringsubject[,intlimit[,intflags]])如果不需要正則表達式的威力,則使用explode()更快,這樣就不會招致正則表達式引擎的浪費。5.分割字符串4.2表單4.2.1表單設計表單在電子商務網站前臺以及動態網站的后臺管理中都有廣泛的應用。【例4-2】用戶注冊頁面4.2.2表單驗證表單在提交到服務器前,一般需要對用戶輸入的數據進行有效性驗證。數據驗證,可以使用JavaScript來進行。由于瀏覽器眾多,直接使用JavaScript需要作瀏覽器兼容性設計,這樣難免難度有點大。對此,jQueryValidate插件有著良好的兼容性,讓客戶端表單驗證變得更簡單,同時提供了大量的定制選項,滿足應用程序各種需求。該插件捆綁了一套有用的驗證方法,包括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對表單數據進行有效性驗證后就可以提交表單了。提交表單時可以用其他方式替代表單默認的“SUBMIT”動作。若提交的表單中有敏感的隱私字段如密碼字段,從安全角度考慮則需要加密后再提交表單。客戶端加密一般用SHA-2,SHA-2包括SHA-224、SHA-256、SHA-384和SHA-512。SHA-256和SHA-512是很新的雜湊函數,前者以定義一個字為32位元,后者則定義一個字為64位元。它們分別使用了不同的偏移量,然而,實際上二者結構是相同的,只在循環執行的次數上有所差異。SHA-224以及SHA-384則是前述二種雜湊函數的截短版,利用不同的初始值做計算。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表單數據獲取與驗證在表單提交后可用如下方法獲取數據:

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

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

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

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

溫馨提示

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

評論

0/150

提交評論