PHP+MySQL動態(tài)網(wǎng)站開發(fā)基礎(chǔ)教程全套完整教學(xué)課件_第1頁
PHP+MySQL動態(tài)網(wǎng)站開發(fā)基礎(chǔ)教程全套完整教學(xué)課件_第2頁
PHP+MySQL動態(tài)網(wǎng)站開發(fā)基礎(chǔ)教程全套完整教學(xué)課件_第3頁
PHP+MySQL動態(tài)網(wǎng)站開發(fā)基礎(chǔ)教程全套完整教學(xué)課件_第4頁
PHP+MySQL動態(tài)網(wǎng)站開發(fā)基礎(chǔ)教程全套完整教學(xué)課件_第5頁
已閱讀5頁,還剩455頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第1章

PHP入門第頁本章概述本章的學(xué)習(xí)目標(biāo)主要內(nèi)容第1章PHP入門第2章PHP語法和函數(shù)第3章字符串第4章數(shù)組第5章正則表達(dá)式第6章PHP與Web頁面交互第7章日期時間第8章Cookie和Session第9章數(shù)據(jù)庫編程第10章PHP操作MySQL數(shù)據(jù)庫第11章文件操作第12章圖像技術(shù)第13章面向?qū)ο缶幊痰?4章PHP與JavaScript、Ajax第15章ThinkPHP第16章綜合實例本章概述第頁PHP是一門服務(wù)器端程序設(shè)計語言,用來開發(fā)

Web網(wǎng)站。除了PHP外,還有JSP、ASP、ASP.NET等重要的服務(wù)器端程序設(shè)計語言。服務(wù)器端語言主要運行在服務(wù)器端,用于處理來自瀏覽器端的客戶請求;服務(wù)器端程序根據(jù)請求處理好之后,將處理結(jié)果返回到瀏覽器端,供用戶在瀏覽器端查看或進(jìn)行下一步交互。本章的學(xué)習(xí)目標(biāo)第頁掌握Web技術(shù)基礎(chǔ)知識。了解PHP的基礎(chǔ)知識。掌握Windows與Linux操作系統(tǒng)平臺上

PHP開發(fā)環(huán)境的搭建。掌握編寫、運行和調(diào)試PHP程序的方法。主要內(nèi)容第頁Web技術(shù)基礎(chǔ)PHP基礎(chǔ)知識PHP開發(fā)環(huán)境的搭建第一個PHP程序調(diào)試與錯誤處理本章小結(jié)1.1

Web技術(shù)基礎(chǔ)第頁百度百科對Web的定義是:Web一般指

WWW(World

Wide

Web),即全球廣域網(wǎng),也稱

為萬維網(wǎng),是一種基于超文本和HTTP的、全球性的、動態(tài)交互的、跨平臺的分布式圖形信息系統(tǒng),是建立在Internet上的一種網(wǎng)絡(luò)服務(wù),為瀏覽者在Internet上查找和瀏覽信息提供了圖形化的、易于訪問的直觀界面,其中的文檔及超鏈接將Internet上的信息節(jié)點組織成一個互為關(guān)聯(lián)的網(wǎng)狀結(jié)構(gòu)。1.1

Web技術(shù)基礎(chǔ)第頁Web的表現(xiàn)形式:超文本、超媒體、超文本傳輸協(xié)議。1.1

Web技術(shù)基礎(chǔ)第頁C/S架構(gòu):C/S(Client/Server)架構(gòu),即客戶端/服務(wù)器架構(gòu)??蛻舳税粋€或多個在用戶計算機

上運行的程序;而服務(wù)器有兩種,一種是數(shù)據(jù)庫

服務(wù)器,客戶端通過數(shù)據(jù)庫連接訪問數(shù)據(jù)庫服務(wù)

器上的數(shù)據(jù);另一種是Socket服務(wù)器,服務(wù)器上

的程序通過Socket與客戶端的程序通信。B/S(Browser/Server)架構(gòu),即瀏覽器/服務(wù)器架構(gòu)。Browser指的是Web瀏覽器,Server是指用

某種語言編寫的服務(wù)器端程序。1.1

Web技術(shù)基礎(chǔ)Web工作原理請求HTML靜態(tài)頁面時訪問的頁面包含PHP程序代碼時第頁1.1

Web技術(shù)基礎(chǔ)Web工作原理當(dāng)訪問的頁面包含PHP程序代碼并且需訪問數(shù)據(jù)庫時第頁1.1

Web技術(shù)基礎(chǔ)第頁主流的Web開發(fā)技術(shù)?LAMP:Linux+Apache+MySQL+PHP?J2EE:UNIX+Tomcat+Oracle+JSP?ASP.NET:Windows

Server+IIS+SQLServer+ASP.NET性能比較LAMPJ2EEASP.NET運行速度較快快快開發(fā)速度快慢快運行損耗一般較小較大難易程度簡單難簡單運行平臺Linux/UNIX/Windows絕大多數(shù)平臺Windows平臺擴展性好好較差安全性好好較差應(yīng)用程度較廣較廣較廣建設(shè)成本非常低非常高高1.1

Web技術(shù)基礎(chǔ)第頁前端開發(fā)語言?HTML(HyperText

Markup

Language,超文本標(biāo)記語言)是用標(biāo)記來編寫網(wǎng)頁的一種語言,因此HTML不是編程語言,而是標(biāo)記語言。由瀏覽器執(zhí)行。HTML文件的擴展名為.html或.htm。?CSS則專注于定義HTML標(biāo)記的呈現(xiàn)效果及頁面布局。?JavaScript是互聯(lián)網(wǎng)上最流行的腳本語言,被數(shù)百萬計的網(wǎng)頁用來改進(jìn)設(shè)計、驗證表單、檢測瀏覽器、創(chuàng)建Cookies以及進(jìn)行其他更多的應(yīng)用。主要內(nèi)容第頁Web技術(shù)基礎(chǔ)PHP基礎(chǔ)知識PHP開發(fā)環(huán)境的搭建第一個PHP程序調(diào)試與錯誤處理本章小結(jié)1.2

PHP基礎(chǔ)知識第頁PHP概述

PHP的優(yōu)勢PHP的應(yīng)用領(lǐng)域常用的PHP開發(fā)工具如何學(xué)好PHPPHP學(xué)習(xí)資源PHP概述第頁PHP(Hypertext

Preprocessor,超文本預(yù)處理器),是一種服務(wù)器端、跨平臺、HTML嵌入式的腳本語言,其獨特的語法混合了C、Java和Perl語言的特點,是一種被廣泛應(yīng)用的開源的多用途腳本語言,尤其適合Web開發(fā)。PHP是B/S體系結(jié)構(gòu),PHP程序在Web服務(wù)器啟動后,用戶可以不使用客戶端軟件,使用瀏覽器即可訪問,既保持了圖形化的用戶界面,又大大減少了應(yīng)用的維護(hù)量。PHP的優(yōu)勢第頁跨平臺特性易學(xué)性免費模板化面向?qū)ο笈c過程內(nèi)嵌Zend加速引擎PHP的應(yīng)用領(lǐng)域第頁PHP在互聯(lián)網(wǎng)高速發(fā)展的今天,應(yīng)用范圍非常廣泛,主要

包括:中小型網(wǎng)站的開發(fā);大型網(wǎng)站的業(yè)務(wù)邏輯結(jié)果展示;

Web辦公管理系統(tǒng);硬件管控軟件的GUI;電子商務(wù)應(yīng)用;

Web應(yīng)用系統(tǒng)開發(fā);企業(yè)級應(yīng)用開發(fā)。PHP吸引著越來越多的Web開發(fā)人員。PHP可應(yīng)用于任何地方、任何領(lǐng)域,并且已擁有上百萬個用戶,擁有良好的生態(tài)社區(qū)。常用的PHP開發(fā)工具第頁PHP的開發(fā)工具很多,常用的開發(fā)工具通常分為三類,一類是簡單文本編輯器類型,如EditPlus、Notepad++;一類是專門的PHP開發(fā)編輯器,如PHPDesigner

8、PHP

Coder、Zend

Studio、PHP

Editor;還有一類是在通用開發(fā)編輯器上通過嵌入PHP插件支持形成的PHP開發(fā)編輯器,如NetBeans

IDE、Eclipse

PDT等。如何學(xué)好PHP第頁明確自己的學(xué)習(xí)目標(biāo)和學(xué)習(xí)方向?qū)W會配置PHP的開發(fā)環(huán)境扎實的基礎(chǔ)設(shè)計模式實踐操練忌浮躁P(guān)HP手冊案例良好的編程習(xí)慣PHP學(xué)習(xí)資源第頁PHP幫助手冊的下載和使用網(wǎng)上學(xué)習(xí)資源圖書網(wǎng)站主要內(nèi)容第頁Web技術(shù)基礎(chǔ)PHP基礎(chǔ)知識PHP開發(fā)環(huán)境的搭建第一個PHP程序調(diào)試與錯誤處理本章小結(jié)1.3

PHP開發(fā)環(huán)境搭建第頁PHP主要運行在Windows和Linux操作系統(tǒng)上,對應(yīng)的環(huán)境搭建是WAMP(Windows+Apache+MySQL+PHP)和LAMP(Linux+Apache+MySQL+PHP)。?在Windows上,一般常常安裝WAMP、XAMPP、APPSERV等集成套件,其中包含了

Apache、PHP、MySQL軟件;?在Linux系統(tǒng)上,一般采用CentOS操作系統(tǒng),采用yum方式安裝Apache、MySQL和PHP組件。主要內(nèi)容第頁Web技術(shù)基礎(chǔ)PHP基礎(chǔ)知識PHP開發(fā)環(huán)境的搭建第一個PHP程序調(diào)試與錯誤處理本章小結(jié)1.4第一個PHP程序<?phpecho

"hello

world";?>第頁主要內(nèi)容第頁Web技術(shù)基礎(chǔ)PHP基礎(chǔ)知識PHP開發(fā)環(huán)境的搭建第一個PHP程序調(diào)試與錯誤處理本章小結(jié)1.5調(diào)試與錯誤處理第頁使用自帶的報錯功能引進(jìn)調(diào)試工具調(diào)試業(yè)務(wù)邏輯錯誤主要內(nèi)容第頁Web技術(shù)基礎(chǔ)PHP基礎(chǔ)知識PHP開發(fā)環(huán)境搭建第一個PHP程序調(diào)試與錯誤處理本章小結(jié)1.6

本章小結(jié)第頁本章主要從概要上介紹了Web技術(shù)和PHP在Web中的位置。Web應(yīng)用程序是以B/S架構(gòu)為基礎(chǔ)的應(yīng)用程序,主要以瀏覽器(Browser)為客戶端。網(wǎng)站就是Web應(yīng)用程序的一種。用戶通過瀏覽器發(fā)送請求到服務(wù)端(Server),服務(wù)端處理完后,再把結(jié)果頁面HTML發(fā)送回客戶端。網(wǎng)站開發(fā)過程中,客戶端需要使用到HTML、CSS、JavaScript語言,而服務(wù)端語言一般采用

PHP、JSP、ASP等。而PHP以簡單、高效著稱。第2章PHP語法和函數(shù)第頁本章概述本章的學(xué)習(xí)目標(biāo)主要內(nèi)容本章概述第頁本章主要介紹PHP的語法風(fēng)格,標(biāo)識符、關(guān)鍵字、常量、變量、表達(dá)式,流程控制,函數(shù)。本章的學(xué)習(xí)目標(biāo)第頁掌握PHP的語法風(fēng)格,包括標(biāo)記與注釋。了解PHP的標(biāo)識符和關(guān)鍵字。掌握PHP中常量與變量的定義與使用。掌握常用的數(shù)據(jù)類型及其轉(zhuǎn)換方法。掌握運算符和表達(dá)式的使用。掌握流程控制語句在程序中的使用。掌握函數(shù)的定義與使用。主要內(nèi)容第頁PHP的語法風(fēng)格標(biāo)識符與關(guān)鍵字PHP常量PHP變量變量類型的轉(zhuǎn)換PHP運算符與表達(dá)式流程控制語句函數(shù)本章小結(jié)2.1

PHP語法風(fēng)格第頁PHP標(biāo)記:XML風(fēng)格、腳本風(fēng)格、簡短風(fēng)格、

ASP風(fēng)格。PHP注釋:C++風(fēng)格的單行注釋、C風(fēng)格的多行注釋、Shell風(fēng)格的注釋。2.1

PHP語法風(fēng)格第頁PHP標(biāo)記:XML風(fēng)格、腳本風(fēng)格、簡短風(fēng)格、

ASP風(fēng)格。XML風(fēng)格的標(biāo)記是本書使用的標(biāo)記,也是推薦使用的標(biāo)記,服務(wù)器不能禁用。該風(fēng)格的標(biāo)記在XML和XHTML

中都能使用。XML風(fēng)格的標(biāo)記格式如下:<?phpecho"這是XML風(fēng)格的標(biāo)記";?>2.1

PHP語法風(fēng)格第頁PHP標(biāo)記:XML風(fēng)格、腳本風(fēng)格、簡短風(fēng)格、

ASP風(fēng)格。腳本風(fēng)格<script

language="php">echo"這是腳本風(fēng)格的標(biāo)記";</script>2.1

PHP語法風(fēng)格第頁PHP標(biāo)記:XML風(fēng)格、腳本風(fēng)格、簡短風(fēng)格、

ASP風(fēng)格。簡短風(fēng)格<?echo"這是簡短風(fēng)格的標(biāo)記";?>2.1

PHP語法風(fēng)格第頁PHP標(biāo)記:XML風(fēng)格、腳本風(fēng)格、簡短風(fēng)格、

ASP風(fēng)格。ASP風(fēng)格<%echo"這是ASP風(fēng)格的標(biāo)記";%>2.1

PHP語法風(fēng)格第頁PHP注釋:C++風(fēng)格的單行注釋、C風(fēng)格的多行注釋、Shell風(fēng)格的注釋。2.1

PHP語法風(fēng)格第頁PHP注釋:C++風(fēng)格的單行注釋、C風(fēng)格的多行注釋、Shell風(fēng)格的注釋。?(1)C++風(fēng)格的單行注釋:以雙斜杠//開始。例如:<?phpecho

"使用C++風(fēng)格";

//這是C++風(fēng)格的單行注釋?>2.1

PHP語法風(fēng)格第頁PHP注釋:C++風(fēng)格的單行注釋、C風(fēng)格的多行注釋、Shell風(fēng)格的注釋。?(2)C風(fēng)格的多行注釋:以標(biāo)記“/*開始,以*/”標(biāo)記結(jié)束。例如:<?php/*C風(fēng)格的多行注釋*/echo"使用C風(fēng)格的多行注釋";?>2.1

PHP語法風(fēng)格第頁PHP注釋:C++風(fēng)格的單行注釋、C風(fēng)格的多行注釋、Shell風(fēng)格的注釋。?(3)Shell風(fēng)格的注釋:以標(biāo)記#開始。例如:<?phpecho

"Shell風(fēng)格的注釋";

#這是Shell風(fēng)格的注釋?>主要內(nèi)容第頁PHP的語法風(fēng)格PHP標(biāo)識符與關(guān)鍵字PHP常量PHP變量變量類型的轉(zhuǎn)換PHP運算符與表達(dá)式流程控制語句函數(shù)本章小結(jié)2.2

PHP標(biāo)識符與關(guān)鍵字第頁PHP標(biāo)識符關(guān)鍵字PHP標(biāo)識符第頁標(biāo)識符可以由一個或多個字符組成,必須以字母或下劃線開頭。此外,標(biāo)識符只能由字母、數(shù)字、下劃線字符和從127~255的其他ASCII字符組成。標(biāo)識符區(qū)分大小寫,函數(shù)例外。因此,變量$recipe不同于變量$Recipe、$rEciPe或$recipE。標(biāo)識符可以是任意長度。開發(fā)人員能通過標(biāo)識符名準(zhǔn)確地描述標(biāo)識符的用途。標(biāo)識符名不能與任何PHP預(yù)定義關(guān)鍵字相同。變量名可以與函數(shù)名相同,但不推薦,這樣會降低代碼的可讀性。關(guān)鍵字關(guān)鍵字關(guān)鍵字關(guān)鍵字關(guān)鍵字關(guān)鍵字AndorxorFILEexceptionLINEarray()asbreakcaseclassconstcontinuedeclaredefaultdiedoechoelseelseifemptyenddeclareendforendforeachendifendswitchendwhileevalexitextendsforforeachfunctionglobalifincludeinclude_onceissetlistnewprintrequirerequire_oncereturnstaticswitchunsetusevarwhileFUNCTIONCLASSMETHODfinalphp_user_filterinterfaceimplementsextendspublicprivateprotectedabstractclonetrycatchthrowthis第頁主要內(nèi)容第頁PHP的語法風(fēng)格PHP標(biāo)識符與關(guān)鍵字PHP常量PHP變量變量類型的轉(zhuǎn)換PHP運算符與表達(dá)式流程控制語句函數(shù)本章小結(jié)2.3

PHP常量第頁常量的定義。

常量值的獲取。常量是否存在的判斷。預(yù)定義常量。常量的定義第頁在PHP中使用define()函數(shù)來定義常量,該函數(shù)的語法格式為:define(string

constant_name,mixedvalue,case_sensitive=true)例如,定義一個常量MY_CONSTANT,代碼如下:define("MY_CONSTANT","19");//

MY_CONSTANT常量的值為字符串"19"常量值的獲取第頁獲取常量值有以下兩種方法:使用常量名直接獲取值;使用constant()函數(shù)獲取常量值。其中,constant()函數(shù)的語法格式如下:?mixed

constant(string

constant_name)常量是否存在的判斷第頁要判斷一個常量是否已經(jīng)定義,可以使用

defined()函數(shù),其語法格式如下:?bool

defined(string

constant_name)第頁預(yù)定義常量說明常量名FILE

當(dāng)前PHP文件名(注意,F(xiàn)ILE前后是兩個下劃線_)LINE

PHP程序行數(shù)PHP_VERSION

使用的PHP版本PHP_OS

內(nèi)建常量,執(zhí)行PHP解析器的操作系統(tǒng)名稱,如Linux、WindowsTRUE

該常量是一個真值(true)FALSE

該常量是一個假值(false)NULL

一個null值E_ERROR

該常量指到最近的錯誤處E_WARNING

該常量指到最近的警告處E_PARSE

該常量指到解析語法有潛在問題處E_NOTICE

該常量為發(fā)生不尋常處的提示但不一定是錯誤處PHP_SAPI

Web服務(wù)器與PHP之間的接口PHP_INT_MAX

最大的整型數(shù)DEFAULT_INCLUDE_PATH

PHP默認(rèn)的包含路徑PEAR_INSTALL_DIRPEAR的安裝路徑PEAR_EXTENSION_DIRPEAR的擴展路徑PHP_BINDIRPHP的執(zhí)行路徑M_E自然對數(shù)e值M_PI數(shù)學(xué)上的圓周率的值FUNCTION當(dāng)前被調(diào)用的函數(shù)名CLASS當(dāng)前類名主要內(nèi)容第頁PHP的語法風(fēng)格PHP標(biāo)識符與關(guān)鍵字PHP常量PHP變量變量類型的轉(zhuǎn)換PHP運算符與表達(dá)式流程控制語句函數(shù)本章小結(jié)2.4

PHP變量第頁變量的聲明和使用

PHP的數(shù)據(jù)類型檢測變量的數(shù)據(jù)類型可變變量變量作用域變量的聲明和使用第頁在PHP中使用變量之前不需要聲明變量,只需要為變量賦值即可。一個變量包括兩個方面:變量名和變量值。PHP變量名除了要符合標(biāo)識符規(guī)則外,第一個字符必須是$,$后的字符必須是字母或下劃線,其他字符可以是字母、數(shù)字或下劃線,而且長度沒有限制。例如:?$my_first_variable;PHP的數(shù)據(jù)類型第頁在PHP中使用變量之前不需要聲明變量,只需要為變量賦值即可。一個變量包括兩個方面:變量名和變量值。PHP變量名除了要符合標(biāo)識符規(guī)則外,第一個字符必須是$,$后的字符必須是字母或下劃線,其他字符可以是字母、數(shù)字或下劃線,而且長度沒有限制。例如:?$my_first_variable=“abc”;檢測變量的數(shù)據(jù)類型第頁gettype()函數(shù)可以在任何時候確定一個變量的類型。該函數(shù)的語法格式如下:?string

gettype

(mixed

$var)$var為需要判斷類型的變量??勺冏兞康陧摽勺冏兞渴且环N獨特的變量,它允許動態(tài)改變一個變量名稱。其工作原理是該變量的名稱由另外一個變量的值來確定,實現(xiàn)過程就是在變量的前面多加一個美元符號$。例如:<?php//輸出變量$change_name$change_name="trans";

//聲明變量$change_name$trans="You

can

see

me!";

//聲明變量transecho

$change_name;echo

"<br>";echo

$$change_name;變量作用域第頁作用域說明局部變量在函數(shù)的內(nèi)部定義的變量,其作用域是所在的函數(shù)全局變量被定義在所有函數(shù)之外的變量,其作用域是整個PHP文件,但在用戶自定義函數(shù)內(nèi)部是不可用的。如果希望用戶自定義函數(shù)內(nèi)部使用全局變量,則需要使用global關(guān)鍵字聲明全局變量靜態(tài)變量能夠在函數(shù)調(diào)用結(jié)束后仍保留變量值,當(dāng)再次回到其作用域時,又可以繼續(xù)使用原來的值。而一般變量是在函數(shù)調(diào)用結(jié)束后,其存儲的數(shù)據(jù)值即被清楚,所占的內(nèi)存空間也被釋放。使用靜態(tài)變量時,先要用關(guān)鍵字static來聲明變量把關(guān)鍵字static放在要定義的變量之前主要內(nèi)容第頁PHP的語法風(fēng)格PHP標(biāo)識符與關(guān)鍵字PHP常量PHP變量變量類型的轉(zhuǎn)換PHP運算符與表達(dá)式流程控制語句函數(shù)本章小結(jié)2.5

變量類型的轉(zhuǎn)換第頁PHP語言提供了兩種類型轉(zhuǎn)換的方式,一

種是自動類型轉(zhuǎn)換,一種是強制類型轉(zhuǎn)換。?使用settype()函數(shù)時,必須把需要改變類型的變量名和修改后的類型名(要用引號)傳遞給它。?強制類型轉(zhuǎn)換的方式也可以把變量的值從一個類型轉(zhuǎn)換為另一個類型,只要把目標(biāo)類型名放在變量名之前的一對括號里即可。主要內(nèi)容第頁PHP的語法風(fēng)格PHP標(biāo)識符與關(guān)鍵字PHP常量PHP變量變量類型的轉(zhuǎn)換PHP運算符與表達(dá)式流程控制語句函數(shù)本章小結(jié)2.6

PHP運算符與表達(dá)式第頁運算符類型

運算符優(yōu)先級運算符類型第頁類型說明算術(shù)運算符執(zhí)行通常的算術(shù)運算,如加、減等賦值運算符把值賦給變量位運算對整型數(shù)中的二進(jìn)制位進(jìn)行運算比較運算符比較兩個值的大小(返回true或false)錯誤控制影響錯誤處理執(zhí)行運算符把引號中的內(nèi)容作為shell命令來執(zhí)行增量/減量運算符變量值遞增或遞減邏輯運算符使用and、or和not等布爾運算符字符串運算符字符串合并運算符,把兩個字符串合并成一個字符串,字符串運算符只有一個數(shù)組對數(shù)組進(jìn)行運算運算符優(yōu)先級第頁PHP常用運算符的優(yōu)先級(從高到低排列)++––(增量/減量)(int)(float)(string)(array)(object)(bool)(強制轉(zhuǎn)換)!

(not)*/%(算術(shù)運算)+–.(算術(shù)運算)<<=>>=<>(比較運算)==!====!==(比較運算)&

&

(and)||

(or)=+=–=*=/=.=%=(賦值運算)andxoror主要內(nèi)容第頁PHP的語法風(fēng)格PHP標(biāo)識符與關(guān)鍵字PHP常量PHP變量變量類型的轉(zhuǎn)換PHP運算符與表達(dá)式流程控制語句函數(shù)本章小結(jié)2.7

流程控制語句第頁選擇結(jié)構(gòu):?if語句?else和elseif語句?switch語句循環(huán)結(jié)構(gòu):?while語句?do…while語句?for語句2.7

流程控制語句第頁選擇結(jié)構(gòu):?1.用if編寫簡單的選擇語句通過if選擇語句,可以設(shè)置一個表達(dá)式,該表達(dá)式的結(jié)果為邏輯值,當(dāng)結(jié)果為true時執(zhí)行代碼塊,當(dāng)結(jié)果為false直接跳過代碼塊,執(zhí)行后續(xù)的其他代碼塊。if語句的結(jié)構(gòu)如下:if(表達(dá)式){//執(zhí)行的代碼塊}例如:$widgets

=

23;if($widgets==23){

echo"庫存中有23件商品";}echo"庫存中的商品不是23件";2.7

流程控制語句第頁2.用else語句提供備選方案PHP還允許在if結(jié)構(gòu)中增加一條else語句,以擴展選擇語句的功能。這樣,程序不僅可以執(zhí)行表達(dá)式值為true的一組代碼,還可以執(zhí)行表達(dá)式值為false的一組代碼。例如:if

(

$widgets

>=

10

)

{echo"庫存商品充足";}

else

{echo"庫存商品小于10,請及時采購";}2.7

流程控制語句break;case

"close"://關(guān)閉文件break;case

"logout"://退出賬號break;第頁3.用switch語句對表達(dá)式進(jìn)行多次判斷?使用switch語句,測試表達(dá)式只出現(xiàn)一次,然后是多個代碼組,對應(yīng)于某個與測試表達(dá)式相等的值。例如:switch

(

$userAction

)

{case

"open"://打開文件break;case

"save"://保存文件2.7

流程控制語句break;case

"close"://關(guān)閉文件break;case

"logout"://退出賬號break;第頁3.用switch語句對表達(dá)式進(jìn)行多次判斷?使用switch語句,測試表達(dá)式只出現(xiàn)一次,然后是多個代碼組,對應(yīng)于某個與測試表達(dá)式相等的值。例如:switch

(

$userAction

)

{case

"open"://打開文件break;case

"save"://保存文件第頁2.7

流程控制語句循環(huán)結(jié)構(gòu)?循環(huán)語句,即反復(fù)運行同一個代碼組,直到滿足某個判斷條件為止。因此,和if選擇語句一樣,這個判斷條件就是一個判斷表達(dá)式,結(jié)果為true或者false。如果表達(dá)式的值為true,循環(huán)繼續(xù)運行;如果表達(dá)式的值為false,則結(jié)束循環(huán),并運行循環(huán)代碼組后的第一行代碼。?常用的循環(huán)結(jié)構(gòu)語句包括:while語句、do…while語句、for語句。第頁2.7

流程控制語句1.while語句?while語句的結(jié)構(gòu)與if語句的結(jié)構(gòu)相似,語法格式如下:while(表達(dá)式){//執(zhí)行這段代碼}//其他代碼例如:<?php$widgetsLeft

=

10;while($widgetsLeft>0){

echo"售出1個商品...";$widgetsLeft--;echo"庫存中還剩".$widgetsLeft."個商品.<br/>";}echo"商品已脫銷!";?>第頁2.7

流程控制語句do…while語句?do…while語句和while語句的區(qū)別是:while語句先進(jìn)行判斷,再執(zhí)行花括號中的代碼;而do…while語句是先執(zhí)行花括號中的代碼一次,再進(jìn)行判斷。語法格式如下:do{//執(zhí)行這段代碼}while(表達(dá)式);//其他代碼例如:<?php$widgetsLeft

=

10;do

{echo"售出1個商品...";$widgetsLeft--;echo"庫存中還剩".$widgetsLeft."個商品.<br/>";2.7

流程控制語句第頁3.for語句?for語句用于預(yù)先知道腳本需要運行的次數(shù)的情況。語法結(jié)構(gòu)如下:for(初始值;條件;增量){要執(zhí)行的代碼;}例如:<?phpfor

($i=1;

$i<=5;

$i++){echo"數(shù)字為".$i.PHP_EOL;}?>2.7

流程控制語句第頁4.程序跳轉(zhuǎn)和終止語句?(1)用break語句退出循環(huán),例如:$randomNumber

=

rand(

1,

1000

);for

(

$i=1;

$i

<=

1000;

$i++

)

{if

(

$i

==

$randomNumber

)

{echo"好極了!我猜到這個數(shù)了,這個數(shù)是:$i<br/>";break;}}?(2)用continue語句跳過本次循環(huán),例如:for

(

$i=1;

$i

<=

10;

$i++

)

{if($i==4)continue;echo"累加和:$i<br/>";}echo"累加結(jié)束!";主要內(nèi)容第頁PHP的語法風(fēng)格PHP標(biāo)識符與關(guān)鍵字PHP常量PHP變量變量類型的轉(zhuǎn)換PHP運算符與表達(dá)式流程控制語句函數(shù)本章小結(jié)2.8

函數(shù)第頁創(chuàng)建函數(shù)的基本語法格式為:function

fun_name($str1,$str2…$strn)

{fun_body;}在函數(shù)間傳遞參數(shù)第頁在調(diào)用函數(shù)時,需要向函數(shù)傳遞參數(shù),被傳入的參數(shù)成為實參,而函數(shù)定義時的參數(shù)為形參。

函數(shù)間參數(shù)傳遞的方式有按值傳遞、按引用傳遞和默認(rèn)參數(shù)3種方式。從函數(shù)中返回值第頁函數(shù)將返回值傳遞給調(diào)用者的方式是使用關(guān)鍵字

return或return()函數(shù)。return的作用是將函數(shù)的值返回給函數(shù)的調(diào)用者,即將程序控制權(quán)返回到

調(diào)用者的作用域。如果在全局作用域內(nèi)使用

return關(guān)鍵字,那么將終止腳本的執(zhí)行。函數(shù)示例第頁【例2-8】定義一個求平方的函數(shù)。<?php//聲明函數(shù)function

fun($num){return

"$num*$num=".$num*$num;}//調(diào)用函數(shù)echo

fun(10);//輸出結(jié)果:$num*$num=100?>變量函數(shù)第頁變量函數(shù),即將函數(shù)作為變量來使用。PHP支持變量函數(shù)。對函數(shù)的引用第頁引用不僅可用于普通變量、函數(shù)參數(shù),也可作用于函數(shù)本身。對函數(shù)的引用,就是對函數(shù)返回結(jié)果的引用。下面的程序首先定義一個函數(shù)fun(),在函數(shù)名前加&符號,接著,變量$str將引用該函數(shù),最后輸出該變量$str,實際上就是$tmp的值。<?phpfunction

&fun($tmp=0){return

$tmp;}$str=&fun("看到了");echo

$str;?>取消引用第頁當(dāng)不再需要引用時,可以取消引用。取消引用使用unset()函數(shù),它只是斷開了變量名和變量內(nèi)容之間的綁定,而不是銷毀變量內(nèi)容。主要內(nèi)容第頁PHP的語法風(fēng)格PHP標(biāo)識符與關(guān)鍵字PHP常量PHP變量變量類型的轉(zhuǎn)換PHP運算符與表達(dá)式流程控制語句函數(shù)本章小結(jié)2.9

本章小結(jié)第頁PHP語法風(fēng)格。標(biāo)識符和關(guān)鍵字。常量、變量、變量類型的轉(zhuǎn)換、運算符和表達(dá)式。流程控制語句其他與循環(huán)相關(guān)的語句,包括跳出循環(huán)的break語句和跳過當(dāng)前循環(huán)的continue語句。函數(shù)及引用。第3章字符串第頁本章概述本章的學(xué)習(xí)目標(biāo)主要內(nèi)容本章概述第頁字符串就是字符的序列,例如“hello”“howare

you?”“123”和“!@#$%”等都是有效的字符串。HTML頁面是由普通文本組成的,URL地址也是字符串形式的。PHP提供了強大的字符串處理功能,其中,提供了將近百個專門用來處理字符串的函數(shù)。本章介紹字符串的基本用法,包括字符串的創(chuàng)建、訪問、搜索、查找和替換、格式化等。通過本章的學(xué)習(xí),讀者能夠熟練處理字符串。本章的學(xué)習(xí)目標(biāo)第頁掌握創(chuàng)建和訪問字符串的方法。掌握搜索字符串的常用函數(shù)。

掌握字符替換的函數(shù)。了解格式化字符串的常用函數(shù)。

掌握字符大小寫轉(zhuǎn)換的常用函數(shù)。主要內(nèi)容第頁創(chuàng)建和訪問字符串搜索字符串在字符串中進(jìn)行字符替換格式化字符串字母大小寫轉(zhuǎn)換本章小結(jié)3.1

創(chuàng)建和訪問字符串第頁創(chuàng)建字符串在字符串中引用變量自定義分隔符求字符串的長度和單詞個數(shù)訪問字符串中的字符創(chuàng)建字符串第頁將字符串賦給變量:創(chuàng)建一個字符串變量的方法是,先聲明一個變量,然后將字符串賦值給該變量,例如:$myStr

=

"hello";將表達(dá)式的值賦給變量:創(chuàng)建字符串變量時,也可以將表達(dá)式的值賦給它,如:$myStr

=

"how

"

.

"are

"

.

"you?";在字符串中引用變量第頁$favoriteAnimal

=

"cat";echo

"My

favorite

animals

are

{$favoriteAnimal}s";自定義分隔符第頁PHP中提供了兩種自定義分隔符的方法:heredoc表示法和nowdoc表示法。heredoc表示法如下:$myStr

=

<<<DELIMITER(在這里插入字符串)

DELIMITER;nowdoc表示法必須將分隔符字符串放在單引號之中,例如:$myStr

=

<<<"DELIMITER"(在這里插入字符串)

DELIMITER;求字符串的長度和單詞個數(shù)第頁求字符串的長度通過strlen()函數(shù)實現(xiàn),語法格式如下:int

strlen

(

string

$string

);統(tǒng)計字符串中的單詞個數(shù)通過str_word_count()函數(shù)實現(xiàn),其語法格式如下:mixed

str_word_count

(

string

$string

[,

int

$format

=

0

[,string

$charlist

]])訪問字符串中的字符第頁訪問字符串中的單個字符:訪問字符串中的某個字符,也就是讀取字符串中某個位置上的字符,語法格式如下:$character

=

$string[index]訪問字符串中的多個連續(xù)字符:如果需要從一個字符串中讀取連續(xù)的幾個字符,即從一個字符串中取子字符串,要用substr()函數(shù),其語法格式如下:string

substr

(string

$string

,

int

$start

[,

int

$length

])主要內(nèi)容第頁創(chuàng)建和訪問字符串搜索字符串在字符串中進(jìn)行字符替換格式化字符串字母大小寫轉(zhuǎn)換本章小結(jié)3.2

搜索字符串第頁實際開發(fā)中,經(jīng)常需要判斷兩個字符串是否具有包含關(guān)系,PHP提供了以下函數(shù):?strstr()函數(shù),返回一個布爾值,告知某個字符串是否包含搜索文本。?strpos()和strrpos()函數(shù),分別返回搜索文本在被搜索字符串中第一次和最后一次出現(xiàn)的位置。?substr_count()函數(shù),返回搜索文本在被搜索字符串中出現(xiàn)的次數(shù)。?strpbrk()函數(shù),可以在字符串中搜索字符集中任意一個字符。主要內(nèi)容第頁創(chuàng)建和訪問字符串搜索字符串在字符串中進(jìn)行字符替換格式化字符串字母大小寫轉(zhuǎn)換本章小結(jié)3.3

在字符串中進(jìn)行字符替換第頁查找和替換是字符串操作中的常用功能。本節(jié)將介紹如下3個字符串替換函數(shù):?str_replace():替換目標(biāo)字符串中出現(xiàn)的全部搜索字符串。例如:$myStr

=

"It

was

the

best

of

times,

it

was

the

worst

of

times.";//以下輸出"It

was

the

best

of

bananas,it

was

the

worst

of

bananas."echo

str_replace("times","bananas",$myStr);//以下輸出"It

was

the

best

of

bananas,it

was

the

worst

of

bananas."echo

str_replace("times","bananas",$myStr,$num)."<br/>";//以下輸出"The

text

was

replaced

2

times."echo

"The

text

was

replaced

$num

times.<br/>";3.3

在字符串中進(jìn)行字符替換第頁查找和替換是字符串操作中的常用功能。本節(jié)將介紹如下3個字符串替換函數(shù):?substr_replace():用另一個字符串替換目標(biāo)字符串中某個特定的部分。例如:$myStr

=

"It

was

the

best

of

times,

it

was

the

worst

of

times.";echo

substr_replace($myStr,"bananas",11)."<br/>";

//輸出"It

wasthe

bananas"3.3

在字符串中進(jìn)行字符替換第頁查找和替換是字符串操作中的常用功能。本節(jié)將介紹如下3個字符串替換函數(shù):?strtr():用其他字符替換目標(biāo)字符串中的某些字符。例如:$myStr

=

"Here"s

a

little

string";//輸出"Here-s+a+little+string""echo

strtr(

$myStr,

"

"",

"+-"

)

.

"<br/>";主要內(nèi)容第頁創(chuàng)建和訪問字符串搜索字符串在字符串中進(jìn)行字符替換格式化字符串字母大小寫轉(zhuǎn)換本章小結(jié)3.4

格式化字符串第頁通用的格式化函數(shù)printf()和sprintf()刪除空白符的函數(shù)trim()、ltrim()和rtrim()填充字符串函數(shù)str_pad()自動換行函數(shù)wordwrap()格式化數(shù)值函數(shù)number_format()主要內(nèi)容第頁創(chuàng)建和訪問字符串搜索字符串在字符串中進(jìn)行字符替換格式化字符串字母大小寫轉(zhuǎn)換本章小結(jié)3.5

字母大小寫轉(zhuǎn)換第頁PHP提供了大小寫轉(zhuǎn)換的多個方法。要把一個字符串全部轉(zhuǎn)換為小寫,可以使用

strtolower(),其語法格式如下:?string

strtolower(

string

$string)如果想要將一個字符串全變成大寫,則使用strtoupper()函數(shù),語法格式如下:?string

strtoupper

(

string

$string

)主要內(nèi)容第頁創(chuàng)建和訪問字符串搜索字符串在字符串中進(jìn)行字符替換格式化字符串字母大小寫轉(zhuǎn)換本章小結(jié)3.10

本章小結(jié)第頁字符串的創(chuàng)建和訪問。strstr(),strpos()和strrpos()。

substr_count()。strpbrk()。

str_replace()。substr_replace()。

strtr()。printf(),sprintf(),trim()、ltrim()、rtrim()、str_、wordwrap()和number_format()。strtolower()、strtoupper()、ucfirst()、lcfirst()、ucwords()。第4章數(shù)組第頁本章概述本章的學(xué)習(xí)目標(biāo)主要內(nèi)容本章概述第頁變量只能存放單個數(shù)值。如果需要存儲多個值,可以使用數(shù)組。數(shù)組主要用于存儲大量相似的數(shù)據(jù)。例如,使用數(shù)組存儲100個客戶的信息。有了數(shù)組,就不需要用100個獨立的變量——如聲明$cumstomer1、$cumstomer2等存儲這些客戶的信息,只需要創(chuàng)建一個$customer數(shù)組即可。本章介紹數(shù)組的使用,包括一維數(shù)組和多維數(shù)組的創(chuàng)建、訪問、統(tǒng)計、增加、刪除、遍歷、排序、合并、拆分、轉(zhuǎn)換等內(nèi)容。本章的學(xué)習(xí)目標(biāo)第頁掌握一維數(shù)組的概念、創(chuàng)建、訪問、修改。掌握使用foreach遍歷數(shù)組的方法。掌握數(shù)組的常用操作方法,包括數(shù)組元素的輸出、數(shù)組元素個數(shù)的統(tǒng)計等。掌握多維數(shù)組的創(chuàng)建、訪問和遍歷。掌握數(shù)組的常用操作,包括數(shù)組排序、添加和刪除數(shù)組元素、合并數(shù)組、數(shù)組和字符串之間的轉(zhuǎn)換、將數(shù)組轉(zhuǎn)換為變量列表等。主要內(nèi)容第頁數(shù)組概述數(shù)組的創(chuàng)建與訪問用foreach()遍歷數(shù)組多維數(shù)組數(shù)組的操作本章小結(jié)4.1

數(shù)組概述第頁PHP支持兩類數(shù)組:索引數(shù)組和關(guān)聯(lián)數(shù)組。索引數(shù)組:這類數(shù)組和C、Java語言中的數(shù)組一樣,每個元素都是通過一個數(shù)值型索引進(jìn)行引用的。通常元素的索引從0開始。例如,第一個元素的索引為0,第二個元素的索引為1,依此類推。關(guān)聯(lián)數(shù)組:這類數(shù)組的元素就像是一對

Key/Value值,每個元素通過一個鍵值索引進(jìn)行引用的。例如,可能用一個數(shù)組的元素表示客戶的年齡,并把“age”作為它的索引,形如$customer["age"]=10。主要內(nèi)容第頁數(shù)組概述數(shù)組的創(chuàng)建與訪問用foreach()遍歷數(shù)組多維數(shù)組數(shù)組的操作本章小結(jié)4.2

數(shù)組的創(chuàng)建與訪問第頁創(chuàng)建數(shù)組。訪問數(shù)組的元素。修改元素值。新增數(shù)組元素。輸出所有數(shù)組元素。切割數(shù)組。統(tǒng)計數(shù)組中元素的個數(shù)。逐個訪問數(shù)組的元素。創(chuàng)建數(shù)組第頁創(chuàng)建數(shù)組通過array()構(gòu)造函數(shù)實現(xiàn),其語法格式如下。array

array

([

mixed

$...

]

)這個函數(shù)需要輸入一個值列表,之后它就可以建立一個含有這些值的數(shù)組元素,例如:$authors

=

array(

"Landy",

"Tom",

"Michelle",

"Fen"

);訪問數(shù)組的元素第頁創(chuàng)建了數(shù)組之后,在使用數(shù)組元素時,就需要訪問數(shù)組。事實上,數(shù)組元素的訪問方法與字符串中單個字符的訪問方法一樣。語法格式如下:數(shù)組名[索引];例如:?$authors

=

array(

"Landy",

"Tom",

"Michelle","Fen"

);?$myAuthor=$authors[0];

//$myAuthor變量的值為"Landy"修改元素值第頁修改元素值的方法和訪問數(shù)組元素值的方法相同。可以把數(shù)組元素看成是單獨一個變量,可以隨意創(chuàng)建、讀取、寫入它的值,例如:$authors

=

array(

"Landy",

"Tom",

"Michelle",

"Fen"

);$authors[2]

=

"Melville";新增數(shù)組元素第頁如何為數(shù)組添加新的元素?最簡單的方法是新建一個索引值為4的新元素。例如:$authors

=

array(

"Landy",

"Tom",

"Michelle",

"Fen"

);$authors[4]

=

"Orwell";還有一種更簡單的給數(shù)組增加新元素的方法,只用方括號,不用索引,例如:$authors

=

array(

"Landy",

"Tom",

"Michelle",

"Fen"

);$authors[]

=

"Orwell";切割數(shù)組第頁array_slice()函數(shù)可以從一個數(shù)組中讀取一組元素,其語法格式如下:array

array_slice

(

array

$array

,

int

$offset

[,

int

$length

=NULL

[,

bool

$preserve_keys

=

false

]]

)統(tǒng)計數(shù)組中元素的個數(shù)第頁實際開發(fā)中經(jīng)常需要統(tǒng)計數(shù)組中元素的個數(shù)??梢酝ㄟ^count()函數(shù)實現(xiàn),語法格式如下:int

count

($array)逐個訪問數(shù)組的元素第頁通過數(shù)組指針逐個訪問數(shù)組元素:函數(shù)說明current()返回指針?biāo)傅漠?dāng)前元素的值,指針位置沒有變化key()返回指針?biāo)傅漠?dāng)前元素的鍵,指針位置沒有變化next()將指針移動到下一個元素位置,并且返回這個元素的值prev()將指針移動到前一個元素位置,并且返回這個元素的值end()

將指針移動到最后一個元素位置,并且返回它的值通過eraesect()h()函將指數(shù)針移動逐到第一個個元素訪位置,問并且返數(shù)回它的組值組元素:它會返回數(shù)組的當(dāng)前元素,然后將這針移動到下一個元素。但是each()返回的不是一個值,而是一個包含4個元素的數(shù)組,其中包含了當(dāng)前元素的鍵和值。元素索引元素值0當(dāng)前元素的鍵“key”當(dāng)前元素的鍵1“value”當(dāng)前元素的值當(dāng)前元素的值主要內(nèi)容第頁數(shù)組概述數(shù)組的創(chuàng)建與訪問用foreach()遍歷數(shù)組多維數(shù)組數(shù)組的操作本章小結(jié)4.3 用foreach()遍歷數(shù)組第頁用foreach遍歷數(shù)組的每個值用foreach遍歷數(shù)組的鍵和值用foreach遍歷修改數(shù)組值用foreach遍歷數(shù)組的每個值第頁foreach語句最簡單的應(yīng)用就是訪問數(shù)組中每個元素的值,語法格式如下:foreach

(

$array

as

$value

)

{//對$value值進(jìn)行操作}//其他程序代碼用foreach遍歷數(shù)組的鍵和值第頁使用foreach可以同時訪問數(shù)組的鍵和值,語法格式如下:foreach

(

$array

as

$key

=>

$value

)

{//(對數(shù)組元素的$key和$value值進(jìn)行操作}//其他程序代碼用foreach遍歷修改數(shù)組值第頁當(dāng)使用foreach語句時,在循環(huán)體內(nèi)處理的是數(shù)組元素的副本。這意味著,改變這個值,并不會改變原來數(shù)組中相應(yīng)元素的值。例如:$authors

=

array(

"Landy",

"Tom",

"Michelle",

"Fen");//下面的foreach語句輸出"Landy

Tom

Hardy

Fen";foreach($authors

as

$val){if

(

$val

==

"Michelle"

)

$val

=

"Hardy";echo

$val

.

"

";}主要內(nèi)容第頁數(shù)組概述數(shù)組的創(chuàng)建與訪問用foreach()遍歷數(shù)組多維數(shù)組數(shù)組的操作本章小結(jié)4.4

多維數(shù)組第頁創(chuàng)建多維數(shù)組:數(shù)組中的元素為數(shù)組。訪問多維數(shù)組的元素:$myBooks[1]["title"]多維數(shù)組的遍歷:使用兩層嵌套的foreach循環(huán)訪問$myBooks數(shù)組。主要內(nèi)容第頁數(shù)組概述數(shù)組的創(chuàng)建與訪問用foreach()遍歷數(shù)組多維數(shù)組數(shù)組的操作本章小結(jié)4.5

數(shù)組的操作第頁數(shù)組排序添加和刪除數(shù)組元素合并數(shù)組數(shù)組與字符串之間的轉(zhuǎn)換把數(shù)組轉(zhuǎn)換為變量列表數(shù)組排序第頁sort()和rsort(),用于索引數(shù)組的排序。

asort()和arsort(),用于關(guān)聯(lián)數(shù)組的排序。ksort()的krsort(),根據(jù)關(guān)聯(lián)數(shù)組的鍵而非值對它進(jìn)行排序。array_multisort(),一個非常有用的函數(shù),它可以同時對多個數(shù)組或多維數(shù)組進(jìn)行排序。添加和刪除數(shù)組元素第頁array_unshift():將一個或多個新元素添加到數(shù)組的首位置。array_shift():刪除數(shù)組的第一個元素。

array_push():在數(shù)組的末尾位置添加一個或多個新元素。array_pop():刪除數(shù)組的最后一個元素。

array_splice():刪除數(shù)組中從某個位置開始的元素,或把新元素插入到數(shù)組某個位置。合并數(shù)組第頁把多個數(shù)組合并成一個數(shù)組通過

array_merge()函數(shù)實現(xiàn)。該函數(shù)的語法格式如下:?array

array_merge

(array$array1

[,

array$...

]

)數(shù)組與字符串之間的轉(zhuǎn)換第頁使用explode()函數(shù)將字符串轉(zhuǎn)換成數(shù)組使用implode()函數(shù)將數(shù)組轉(zhuǎn)換成一個字符串把數(shù)組轉(zhuǎn)換為變量列表第頁list()函數(shù),其功能為把數(shù)組的各個元素的值分散到各個變量中。list()函數(shù)的語法格式如下:array

list

(

mixed

$var1

[,

mixed

$...

]

)主要內(nèi)容第頁數(shù)組概述數(shù)組的創(chuàng)建與訪問用foreach()遍歷數(shù)組多維數(shù)組數(shù)組的操作本章小結(jié)4.6

本章小結(jié)第頁本章首先介紹了數(shù)組的基本概念,然后介紹創(chuàng)建數(shù)組,訪問數(shù)組元素,輸出數(shù)組元素。接著介紹數(shù)組指針,可以通過數(shù)組指針引用數(shù)組的元素。最后討論數(shù)組處理函數(shù),這些函數(shù)主要用于排序數(shù)組、在不同的位置增刪數(shù)組元素、合并數(shù)組、進(jìn)行數(shù)組和字符串的相互轉(zhuǎn)換等。這些函數(shù)如下:排序函數(shù):包括sort()、asort()、ksort()和array_multisort()等函數(shù)。添加和刪除元素的函數(shù):包括array_unshift()、array_shift()、array_push()、array_pop()和array_splice()等函數(shù)。合并數(shù)組的函數(shù):通過array_merge()函數(shù)可以把多個數(shù)組合并成一個數(shù)組。進(jìn)行數(shù)組和字符串互相轉(zhuǎn)換的函數(shù):使用explode()和implode()函數(shù)可以在數(shù)組與字符串之間進(jìn)行轉(zhuǎn)換。將數(shù)組元素變?yōu)槠胀ㄗ兞康暮瘮?shù):使用list()函數(shù)可以把數(shù)組的元素存儲到各個普通變量中。第5章正則表達(dá)式第頁本章概述本章的學(xué)習(xí)目標(biāo)主要內(nèi)容本章概述第頁正則達(dá)式,又稱規(guī)則表達(dá)式,是一種文本模式,包括普通字符(例如,a到z之間的字母)和特殊字符(稱為"元字符")。正則表達(dá)式使用單個字符串來描述、匹配一系列匹配某個句法規(guī)則的字符串,通常被用來檢索、替換那些符合某個模式(規(guī)則)的文本。例如,定義一個表示固定電話規(guī)則的正則表達(dá)式,就可以使用該正則表達(dá)式判斷用戶輸入的內(nèi)容是否是固定電話。本章將介紹正則表達(dá)式的基本概念、模式匹配、組成正則表達(dá)式的一些常用通配符,以及常用的正則表達(dá)式函數(shù)等。本章的學(xué)習(xí)目標(biāo)第頁了解正則表達(dá)式的概念。掌握PHP中模式匹配的使用方法。熟悉正則表達(dá)式的語法細(xì)節(jié)。掌握在整個字符串?dāng)?shù)組中進(jìn)行搜索。掌握使用正則表達(dá)式進(jìn)行文本替換。主要內(nèi)容第頁什么是正則表達(dá)式正則表達(dá)式的語法規(guī)則PHP中的模式匹配正則表達(dá)式的使用用preg_match_all()函數(shù)實現(xiàn)多次匹配用preg_grep()函數(shù)搜索數(shù)組文本替換本章小結(jié)5.1

什么是正則表達(dá)式第頁正則表達(dá)式描述了一種字符串匹配的模式,可以用來檢查一個串是否含有某種子串、將匹配的子串做替換或者從某個串中取出符合某個條件的子串等。在實際的Web網(wǎng)站開發(fā)中,最經(jīng)常用到正則表達(dá)式的是:上傳文件類型的判斷、電子郵箱的判斷、電話號碼的判斷、文本搜索與替換,等等。主要內(nèi)容第頁什么事正則表達(dá)式正則表達(dá)式的語法規(guī)則PHP中的模式匹配正則表達(dá)式的使用用preg_match_all()函數(shù)實現(xiàn)多次匹配用preg_grep()函數(shù)搜索數(shù)組文本替換本章小結(jié)5.2

正則表達(dá)式的語法規(guī)則第頁行定位符(^和$)、單詞定界符(\b、\B)、字符類([]選擇字符(|)、連字符(-)、排除字符([^])、限定符(?*+{n,m})、點號字符(.)、轉(zhuǎn)義字符(\)、反斜線(\括號字符(())、反向引用主要內(nèi)容第頁什么事正則表達(dá)式正則表達(dá)式的語法規(guī)則PHP中的模式匹配正則表達(dá)式的使用用preg_match_all()函數(shù)實現(xiàn)多次匹配用preg_grep()函數(shù)搜索數(shù)組文本替換本章小結(jié)5.3

PHP中的模式匹配第頁在PHP中,最重要的模式匹配函數(shù)是

preg_match()。該函數(shù)的語法格式如下:?int

preg_match

(

string

$pattern

,

string$subject

[,

array

&$matches

[,

int

$flags

=

0[,

int

$offset

=

0

]]]

)主要內(nèi)容第頁什么事正則表達(dá)式正則表達(dá)式的語法規(guī)則PHP中的模式匹配正則表達(dá)式的使用用preg_match_all()函數(shù)實現(xiàn)多次匹配用preg_grep()函數(shù)搜索數(shù)組文本替換本章小結(jié)5.4

正則表達(dá)式的使用第頁匹配字面字符用字符類匹配字符類型多次匹配同一字符貪婪匹配法和非貪婪匹配法用子模式分組模式引用前面的子模式匹配串匹配多個模式主要內(nèi)容第頁什么事正則表達(dá)式正則表達(dá)式的語法規(guī)則PHP中的模式匹配正則表達(dá)式的使用用preg_match_all()函數(shù)實現(xiàn)多次匹配用preg_grep()函數(shù)搜索數(shù)組文本替換本章小結(jié)5.5

用preg

match

all()函數(shù)實第頁現(xiàn)多次匹配preg_match_all()函數(shù)語法格式如下:?int

preg_match_all

(

string

$pattern

,

string$subject

[,

array

&$matches

[,

int

$flags

=PREG_PATTERN_ORDER

[,

int

$offset

=

0]]]

)正則表達(dá)式$pattern;要在其中進(jìn)行搜索的字符串(或目標(biāo)串)$subject;一個保存匹配結(jié)果的數(shù)組$matches;匹配操作的標(biāo)志$flags;開始搜索的偏移位置$offset主要內(nèi)容第頁什么事正則表達(dá)式正則表達(dá)式的語法規(guī)則PHP中的模式匹配正則表達(dá)式的使用用preg_match_all()函數(shù)實現(xiàn)多次匹配用preg_grep()函數(shù)搜索數(shù)組文本替換本章小結(jié)5.6

用preg grep()函數(shù)搜索數(shù)組第頁preg_match()和preg_match_all()函數(shù)都可以搜索文本中的單個字符串,但如果想搜索整個字符串?dāng)?shù)組,則要用preg_grep(),其語法格式如下:?array

preg_grep

(string

$pattern

,

array

$input

[,int

$flags

=

0])正則表達(dá)式$pattern、字符串?dāng)?shù)組$input和標(biāo)志符$flags(可選)。該函數(shù)將會返回一個數(shù)組,其中保存正則表達(dá)式的全部匹配串,并且以這個匹配串在原數(shù)組中的索引號為鍵。主要內(nèi)容第頁什么事正則表達(dá)式正則表達(dá)式的語法規(guī)則PHP中的模式匹配正則表達(dá)式的使用用preg_match_all()函數(shù)實現(xiàn)多次匹配用preg_grep()函數(shù)搜索數(shù)組文本替換本章小結(jié)5.7文本替換第頁str_replace()可以用來替換簡單的常量字符串。若要替換比較復(fù)雜的文本模式,則需要使用正則表達(dá)式字符串替換函數(shù)preg_replace()和

preg_replace_callback()來實現(xiàn)。主要內(nèi)容第頁什么事正則表達(dá)式正則表達(dá)式的語法規(guī)則PHP中的模式匹配正則表達(dá)式的使用用preg_match_all()函數(shù)實現(xiàn)多次匹配用preg_grep()函數(shù)搜索數(shù)組文本替換本章小結(jié)第頁5.8本章小結(jié)本章向讀者介紹了正則表達(dá)式,主要內(nèi)容包括:正則表達(dá)式的概念及使用場景;正則表達(dá)式中常用的元標(biāo)記和語法規(guī)則;PHP中的模式匹配;正則表達(dá)式的使用;使用正則表達(dá)式進(jìn)行多次匹配;使用正則表達(dá)式進(jìn)行字符串替換。還介紹了PHP的眾多正則表達(dá)式函數(shù),包括:根據(jù)正則表達(dá)式匹配字符串的preg_match()和

preg_match_all()函數(shù);用轉(zhuǎn)義符表示表達(dá)式中的特殊字符的preg_quote()函數(shù);可以匹配字符串?dāng)?shù)組的preg_grep()函數(shù);用于文本替換的

preg_replace()和preg_replace_callback()函數(shù)。第6章PHP與Web頁面交互第頁本章概述本章的學(xué)習(xí)目標(biāo)主要內(nèi)容本章概述第頁PHP與Web頁面的交互,解決的是網(wǎng)頁如何與服務(wù)器端

PHP程序進(jìn)行交互,即客戶端怎么向服務(wù)器請求信息,如何將客戶端采集的表單數(shù)據(jù)發(fā)送到服務(wù)器端,服務(wù)器端的

PHP程序又是如何接收客戶端瀏覽器端發(fā)送來的表單信息,網(wǎng)頁之間如何交互等。數(shù)據(jù)采集是網(wǎng)站的一項基本功能。比如,用戶注冊、調(diào)查問卷等,填寫的就是事先設(shè)計好的注冊表單、調(diào)查問卷表單。填寫完成后,提交數(shù)據(jù)到服務(wù)器端,PHP處理程序接收提交過來的數(shù)據(jù),并進(jìn)行后續(xù)處理。這就是典型的PHP與Web頁面的交互。第頁本章概述用戶填寫表單數(shù)據(jù)之后,需要通過特定的交互方式,將數(shù)據(jù)提交給服務(wù)器端的PHP處理程序。PHP提供了兩種交互方式:GET方式和POST方式。其中,GET方式多用于請求數(shù)據(jù),向服務(wù)器傳遞參數(shù)時附于URL之后;POST方式

多用于向服務(wù)器寫入數(shù)據(jù),例如,提交表單數(shù)據(jù)或上傳文件,向服務(wù)器提交的數(shù)據(jù)通過函數(shù)體傳到服務(wù)器端。PHP和Web頁面交互的過程中,還可以對URL進(jìn)行編碼/解碼,對Web服務(wù)器端的信息進(jìn)行采集,以及對上傳文件進(jìn)行預(yù)設(shè),等等。HTTP(Hypertext

Transfer

Protocol,HTPP)協(xié)議是互聯(lián)網(wǎng)通信的基礎(chǔ)。Web服務(wù)器和瀏覽器是通過HTTP協(xié)議進(jìn)

行通信的。HTTP是一組協(xié)議,規(guī)定了如何向Web服務(wù)器發(fā)送請求,以及如何從Web服務(wù)器讀取數(shù)據(jù)。第頁本章的學(xué)習(xí)目標(biāo)了解表單及表單元素。熟悉在Web頁面中插入表單的過程。了解通過GET和POST兩種方式向服務(wù)器端提交表單數(shù)據(jù)。掌握PHP處理程序如何接收客戶端傳遞過來的參數(shù)值。掌握如何在網(wǎng)頁中插入PHP腳本。掌握通過PHP獲取不同表單元素傳遞過來的值。掌握針對URL參數(shù)進(jìn)行編碼和解碼的技術(shù)。掌握Web服務(wù)器端信息的采集方法。掌握文件上傳的方法,以及為了上傳文件應(yīng)對php.ini文件進(jìn)行的設(shè)置。HTTP通信基礎(chǔ)。主要內(nèi)容第頁表單將表單存為html文件獲取表單數(shù)據(jù)的兩種方法PHP參數(shù)傳遞的常用方法在網(wǎng)頁中嵌入PHP腳本在PHP中獲取表單數(shù)據(jù)對URL傳遞的參數(shù)進(jìn)行編碼和解碼Web服務(wù)器端其他數(shù)據(jù)采集方法文件上傳HTTP的使用本章小結(jié)6.1表單第頁創(chuàng)建表單表單元素創(chuàng)建表單第頁使用<form>標(biāo)記,并在其中插入相關(guān)的表單元素,即可創(chuàng)建一個表單。表單結(jié)構(gòu)如下:<form

name="form_name"

method="method"

action="url"enctype="value"

target="target_win">……</form><form>標(biāo)記的屬性說明name表單的名稱method設(shè)置表單的提交方式,GET或者POST方式action指向處理該表單頁面的URL(相對位置或者絕對位置)enctype設(shè)置表單內(nèi)容的編碼方式target設(shè)置返回信息的顯示方式,一共有4種取值:_blank將返回信息顯示在新的窗口中;_parent將返回信息顯示在父級窗口中;_self將返回信息顯示在當(dāng)前窗口中;_top將返回信息顯示在頂級窗口中表單元素第頁表單(form)由表單元素組成。常用的表單元素有以下幾種標(biāo)記:輸入域標(biāo)記<input>、選擇域標(biāo)記<select>和<option>、文字域標(biāo)記<textarea>等。主要內(nèi)容第頁表單將表單存為html文件獲取表單數(shù)據(jù)的兩種方法PHP參數(shù)傳遞的常用方法在網(wǎng)頁中嵌入PHP腳本在PHP中獲取表單數(shù)據(jù)對URL傳遞的參數(shù)進(jìn)行編碼和解碼Web服務(wù)器端其他數(shù)據(jù)采集方法文件上傳HTTP的使用本章小結(jié)6.2將表單存為html文件第頁在實際項目中,一是由于前后端工作由不同的人承擔(dān),因此,一般將表單放到一個單獨的html文件中,然后將業(yè)務(wù)邏輯代碼放到單獨的php文件中,然后用特定的方法將html表單中的元素值提交到php文件以進(jìn)行處理,處理完畢后,再將處理結(jié)果返回給用戶?!纠?-2】用戶注冊頁面。主要內(nèi)容第頁表單將表單存為html文件獲取表單數(shù)據(jù)的兩種方法PHP參數(shù)傳遞的常用方法在網(wǎng)頁中嵌入PHP腳本在PHP中獲取表單數(shù)據(jù)對URL傳遞的參數(shù)進(jìn)行編碼和解碼Web服務(wù)器端其他數(shù)據(jù)采集方法文件上傳HTTP的使用本章小結(jié)6.3獲取表單數(shù)據(jù)的兩種方法第頁通過POST方式提交表單,PHP通過$_POST獲取。<form

name="form1"

method="post"action="register.php"

enctype="multipart/form-data"通過GET方式提交表單,PHP通過$_GET獲取。<form

name="form1"

method="get"action="register.php"

enctype="multipart/form-data"主要內(nèi)容第頁表單將表單存為html文件獲取表單數(shù)據(jù)的兩種方法PHP參數(shù)傳遞的常用方法在網(wǎng)頁中嵌入PHP腳本在PHP中獲取表單數(shù)據(jù)對URL傳遞的參數(shù)進(jìn)行編碼和解碼Web服務(wù)器端其他數(shù)據(jù)采集方法文件上傳HTTP的使用本章小結(jié)6.4

PHP參數(shù)傳遞的常用方法第頁當(dāng)html頁面中的表單參數(shù)通過POST或GET方式提交到服務(wù)端的PHP代碼后,PHP代碼應(yīng)該通過合適的方式來獲取表單、URL和SESSION變量的值。?通過$_POST[]接收表單數(shù)據(jù),例如$_POST["name"]?通過$_GET[]接收表單數(shù)據(jù),例如$_GET["name"]主要內(nèi)容第頁表單將表單存為html文件獲取表單數(shù)據(jù)的兩種方法PHP參數(shù)傳遞的常用方法在網(wǎng)頁中嵌入PHP腳本在PHP中獲取表單數(shù)據(jù)對URL傳遞的參數(shù)進(jìn)行編碼和解碼Web服務(wù)器端其他數(shù)據(jù)采集方法文件上傳HTTP的使用本章小結(jié)6.5在網(wǎng)頁中嵌入PHP腳本第頁在HTML標(biāo)記中添加PHP腳本:添加PHP腳本標(biāo)記<?php…?>,標(biāo)記之間的所有文本都被解釋成PHP,標(biāo)記之外的任何文本都被當(dāng)成HTML語言來解析。對表單元素的value屬性進(jìn)行賦值:用戶名:<input

type="text"name="user_name"value="<?php

echo

$user_name;?>">主要內(nèi)容第頁表單將表單存為html文件獲取表單數(shù)據(jù)的兩種方法PHP參數(shù)傳遞的常用

溫馨提示

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

最新文檔

評論

0/150

提交評論