PHP是一種跨平臺的開源的服務(wù)器端嵌入式腳本語言,MySQL是*流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它們的配合使得Web開發(fā)者能夠快速地寫出動態(tài)生成頁面的腳本,從而在全球獲得越來越多網(wǎng)站開發(fā)人員的青睞。
本書的開發(fā)小組具有豐富的網(wǎng)站開發(fā)經(jīng)驗,篩選出適合教學(xué)的開發(fā)案例,詳細介紹了PHP 7+MySQL 5.6動態(tài)網(wǎng)站開發(fā)的知識和技巧。本書通過結(jié)合不同難度的案例,比較全面地介紹PHP 7 + MySQL 5.6動態(tài)網(wǎng)站開發(fā)技術(shù)。本書內(nèi)容對于初學(xué)者來說理解起來極其容易,可以快速入門,只需要幾個小時就可以自己編寫一些簡單的腳本。希望這本書能幫助喜歡PHP + MySQL的朋友,完全掌握PHP+MySQL 動態(tài)網(wǎng)站開發(fā)的技術(shù)要點,并具備動態(tài)網(wǎng)站開發(fā)能力。
PHP是當(dāng)前開發(fā)Web應(yīng)用系統(tǒng)中比較理想的工具,它易于使用、功能強大、成本低廉、安全性高、開發(fā)速度快且執(zhí)行靈活,應(yīng)用非常廣泛。使用PHP+MySQL開發(fā)的Web項目,在軟件方面的投資成本較低、運行穩(wěn)定,因此現(xiàn)在越來越多的供應(yīng)商、用戶和企業(yè)投資者日益認(rèn)識到使用PHP開發(fā)的各種商業(yè)應(yīng)用和協(xié)作構(gòu)建的各種網(wǎng)絡(luò)應(yīng)用程序,變得更加具有競爭力,更加吸引客戶。無論是從性能、質(zhì)量,還是價格上,PHP+MySQL都成為企業(yè)必須考慮的開發(fā)組合。
對于PHP+MySQL應(yīng)用開發(fā)的新手而言,本書不失為一本好的入門教材,使用了最新版本PHP 7,又從最基礎(chǔ)的語法入手,結(jié)合小的示例,讓讀者能夠?qū)W完就會。
本書特點
1. 以代碼驅(qū)動學(xué)習(xí)
每章都配有與本章知識相關(guān)的小示例,增加讀者的動手能力,用代碼來驅(qū)動讀者一步步學(xué)會PHP。
2. 基于最新版本學(xué)習(xí)
全書采用PHP 7+MySQL 5.6的最新版本搭配,讓讀者學(xué)習(xí)前沿技術(shù),學(xué)完不會落伍。
3. 大型網(wǎng)站項目引導(dǎo)
本書最后兩個案例給出大型網(wǎng)站開發(fā)的完整流程,從數(shù)據(jù)庫設(shè)計到模塊分析到最終每個模塊的界面設(shè)計和開發(fā),讓讀者了解PHP+MySQL的最終實踐情況和如何去實踐。
4. 零基礎(chǔ)入門
本書是一本完全站在沒有PHP語言基礎(chǔ)的讀者角度寫的書,全書將PHP語言拆分成一個個小的技術(shù)點,讓讀者能輕松閱讀下去,而且能夠輕松學(xué)得會。
5. 配備素材,方便學(xué)習(xí)
為了方便讀者學(xué)習(xí),本書配套光盤中附帶了所有案例需要的源文件。源文件為讀者學(xué)習(xí)提供了參考,同時用戶可以直接按照書中操作步驟的講解進行操作,以便提高學(xué)習(xí)效率。
閱讀指南
全書內(nèi)容包括4篇19章。
第1章介紹了PHP 7語言的一些新特性,首先讓讀者了解為什么需要學(xué)習(xí)PHP,而且得學(xué)習(xí)最新版本PHP 7;然后讓初學(xué)者學(xué)習(xí)搭建PHP的開發(fā)環(huán)境和開發(fā)工具,最后通過一個HelloWorld的例子讓讀者了解PHP程序如何開始。
第2章介紹了PHP語言的基礎(chǔ)語法,這也是學(xué)習(xí)一門語言的開發(fā)的基礎(chǔ),包括了標(biāo)識符、變量、常量、數(shù)據(jù)類型、表達式、運算符、流程控制、函數(shù)。
第3章介紹了PHP操作網(wǎng)頁的一些基礎(chǔ),這是動態(tài)網(wǎng)頁的關(guān)鍵,就是與用戶的交互,這些交互包括表單處理、表單元素處理、Cookie、Session。我們都知道網(wǎng)頁操作離不開表單,我們所看到的網(wǎng)頁中的文字、圖像、文本框、按鈕,這些都是表單,所以本章也是PHP進行網(wǎng)頁開發(fā)的基礎(chǔ)。
第4章介紹了PHP中的字符串和數(shù)組,當(dāng)我們多寫一些PHP網(wǎng)頁開發(fā)代碼的時候就會發(fā)現(xiàn),其他網(wǎng)頁開發(fā)中很多的代碼都涉及字符串的操作和數(shù)組的操作,在PHP中,它們大多通過函數(shù)來完成。
第5章介紹了PHP中的日期和時間,這是網(wǎng)頁開發(fā)很常見的操作,所以PHP提供了大量的函數(shù),學(xué)起來很簡單,相信這章不會難倒讀者。
第6章介紹了文件和目錄的操作,我們經(jīng)常操作電腦的讀者在操作系統(tǒng)中的各種操作其實就是對文件的操作,網(wǎng)頁開發(fā)中也經(jīng)常需要操作文件,本章就介紹了用PHP打開、讀取等常見的文件操作。
第7章介紹了國際化,其實讀者對此都不陌生,我們看到很多國際網(wǎng)站都有“選擇語言”這一項,甚至蘋果手機中也有這一項。我們選擇一下語言,系統(tǒng)所有的界面都會變?yōu)橹形模@就是介紹國際化的原因。相信讀者看完本章就明白了。
第8章介紹了zip文件的處理,網(wǎng)站上的文件越來越多,我們都知道網(wǎng)盤,網(wǎng)盤為了存儲更多的文件,就會包含一些壓縮文件,本章就介紹了如何用PHP操作這些壓縮文件。
第9章介紹了PHP如何操作圖形圖像,其中會介紹GD2擴展庫,不僅可以操作已經(jīng)存在的圖片,還可以利用這個庫來創(chuàng)建圖片。
第10章是正則表達式的介紹,不管哪門語言,都會學(xué)習(xí)到正則表達式,它是文字處理的關(guān)鍵,PHP也提供了一些這方面的函數(shù)。本章不僅會讓讀者認(rèn)識什么是正則,也會學(xué)到如何處理網(wǎng)頁中的一些驗證方法。
第11章開始介紹MySQL,本章站在入門讀者的基礎(chǔ)上,詳細介紹了MySQL的安裝、配置、啟動、登錄,最后還對MySQL安裝失敗的常見原因進行了分析。
第12章是數(shù)據(jù)庫的基本操作,包括創(chuàng)建數(shù)據(jù)庫、刪除數(shù)據(jù)庫、學(xué)習(xí)數(shù)據(jù)庫存儲引擎,還會學(xué)習(xí)如何查看MySQL默認(rèn)的存儲引擎。
第13章是數(shù)據(jù)表的基本操作,包括創(chuàng)建數(shù)據(jù)表、查看數(shù)據(jù)表結(jié)構(gòu)、修改數(shù)據(jù)表、刪除數(shù)據(jù)庫表,最后還會學(xué)習(xí)一些數(shù)據(jù)表操作的常見問題。
第14章是數(shù)據(jù)的基本操作,包括添加數(shù)據(jù)、更新數(shù)據(jù)、刪除數(shù)據(jù)、查詢數(shù)據(jù),最后還會學(xué)習(xí)一些數(shù)據(jù)操作的常見問題。
第15章是數(shù)據(jù)庫的整體操作,為了保障用戶的一些信息,我們都知道網(wǎng)站要經(jīng)常進行備份,這類備份主要就是數(shù)據(jù)庫的備份,本章包括數(shù)據(jù)備份、數(shù)據(jù)還原、數(shù)據(jù)庫遷移。
第16章介紹了PHP操作MySQL的最基本方式,包括連接和關(guān)閉數(shù)據(jù)庫、操作數(shù)據(jù)庫、操作數(shù)據(jù)表、操作數(shù)據(jù)。
第17章介紹了PHP操作MySQL數(shù)據(jù)庫的另一種方式——RedBeanPHP,包括它的下載、安裝、CRUD操作和調(diào)試。
第18章是使用PHP+MySQL構(gòu)建模擬考試系統(tǒng),利用這個項目,演示PHP開發(fā)Web系統(tǒng)的整體流程。
第19章是使用PHP+MySQL構(gòu)建在線購物網(wǎng)站,通過這個項目,讓讀者了解一個網(wǎng)站從開始設(shè)計到實戰(zhàn)開發(fā)的整個過程。
讀者對象
本書內(nèi)容由淺入深,適用于下列讀者:
? 從事動態(tài)網(wǎng)站開發(fā)人員
? 接受PHP培訓(xùn)的學(xué)員
? Web開發(fā)愛好者
? 網(wǎng)站維護及管理人員
? 初級或?qū)I(yè)的網(wǎng)站開發(fā)人員
? 大中專院校的教師及培訓(xùn)中心的講師
? 進行畢業(yè)設(shè)計和對PHP感興趣的學(xué)生
? 從事ASP或JSP而想轉(zhuǎn)向PHP開發(fā)的程序員
光盤內(nèi)容
本書配套光盤內(nèi)容包括示例源代碼、課件、教學(xué)視頻。
如果光盤有問題,郵件主題為“PHP+MySQL從零開始學(xué)”。
感謝
本書由平頂山學(xué)院的樊愛宛和黃凱主筆,其中第1~10、16~19章由樊愛宛編寫,第11~15章由黃凱編寫。參與本書創(chuàng)作的還有沈超、李勇、王立平、劉祥淼、彭霽、曹卉、林江閩、李陽、孫亞男、楊超、韓廣義、楊旺功、任娜娜。由于編者水平有限,書中不足之處在所難免,歡迎廣大讀者批評指正。
作者
2017年8月
收起全部↑
第 10 章
? 正則表達式 ?
要在計算機系統(tǒng)中查找某個文件,碰巧忘記了文件名,但知道該文件的類型,即知道該文件的后綴名,比如,要找一個圖片,那么可能會通過*.png這樣的字符來幫助查找,其中字符*就代表了一個或多個字符。計算機通過這樣的字符組合,會將系統(tǒng)中所有以.png為后綴名的文件列出來,如:m.png、flag.png、river.png、mydog.png等,以便用戶找到需要的圖片文件。
*.png就是一個表達式,我們可以簡單理解為正則表達式(Regular expression)。正則表達式是一種可以用于模式匹配的強大工具。簡單地說,正則表達式就是一套規(guī)則,用于去判定其他的元素是否符合它。PHP繼承了Perl的正則表達式法則,還有自己的一套法則。本章將詳細介紹PHP的正則表達式。
10.1 在PHP中使用正則表達式
本節(jié)通過一個例子讓讀者了解正則表達式在PHP中如何使用,以及PHP中有關(guān)正則的函數(shù)。這些函數(shù)與PHP 5中的函數(shù)不同,如果是升級PHP代碼的讀者請務(wù)必注意,調(diào)試PHP 5中的正則函數(shù)會報錯。
10.1.1 應(yīng)用正則的函數(shù)
在PHP中主要有3個函數(shù)來處理正則表達式,用來檢查一個字符串是否滿足一個的規(guī)則。它們都把一個正則表達式作為它們的第一個參數(shù),語法為:
? int preg_match(string $pattern , string $subject):最常用的正則表達式函數(shù),搜索跟正則表達式pattern匹配的一個字符串。搜索到返回1,否則返回0。這個函數(shù)在PHP 5中是ereg()。
? string preg_replace(mixed $pattern , mixed $replacement , mixed $subject):搜索跟正則表達式pattern匹配的一個字符串,并用新的字符串代替所有這個表達式出現(xiàn)的地方,PHP 5中是replace()。
? array preg_split(string $pattern , string $subject) :搜索和正則表達式匹配的字符串,并且以字符串集合的方式返回匹配結(jié)果。
本節(jié),旨在給出PHP提供的正則表達式函數(shù),并簡單介紹其功能。
10.1.2 通過一個例子理解正則
舉一個簡單的例子:在一個用戶注冊的頁面中(例如,一個論壇或者交友網(wǎng)站的注冊頁面),上面可能有“電子郵件”這一項需要填寫。對系統(tǒng)來說,需要判定用戶所填寫的電子郵件地址是否合法,即是否符合電子郵件地址的規(guī)則。
【示例10-1】未使用正則檢測電子郵件地址規(guī)則。
function validate_email1($email)
{
$hasAtSymbol = strpos($email, "@"); //檢查是否包含@
$hasDot = strpos($email, "."); //檢查是否包含.
if($hasAtSymbol && $hasDot && $hasAtSymbol<$hasDot )
return 1;
else
return 0;
}
echo validate_email1("tom@php.net"); //true,返回1
echo validate_email1("tom@php"); //false,返回0
?>
上面代碼實現(xiàn)了一個函數(shù)validate_email1(),使用字符串操作中的定位字符函數(shù),用來判斷一個字符串是否是一個合法的電子郵件地址。仔細考慮實現(xiàn)的功能,實際上是在判斷一個字符串是否具有一定的模式,或者說是否滿足一定的規(guī)則。在這種情況下,就可以使用正則表達式來實現(xiàn)相同的功能。
【示例10-2】使用正則檢查電子郵件地址規(guī)則。
……