産品特色
編輯推薦
PHP是一種跨平颱的開源的服務器端嵌入式腳本語言,MySQL是*流行的關係型數據庫管理係統,它們的配閤使得Web開發者能夠快速地寫齣動態生成頁麵的腳本,從而在全球獲得越來越多網站開發人員的青睞。
本書的開發小組具有豐富的網站開發經驗,篩選齣適閤教學的開發案例,詳細介紹瞭PHP 7+MySQL 5.6動態網站開發的知識和技巧。本書通過結閤不同難度的案例,比較全麵地介紹PHP 7 + MySQL 5.6動態網站開發技術。本書內容對於初學者來說理解起來極其容易,可以快速入門,隻需要幾個小時就可以自己編寫一些簡單的腳本。希望這本書能幫助喜歡PHP + MySQL的朋友,完全掌握PHP+MySQL 動態網站開發的技術要點,並具備動態網站開發能力。
內容簡介
PHP已經走過瞭20多年,目前*新版本是PHP 7,性能方麵得到瞭大幅度的提升。本書就是立足於*新版的PHP和MySQL,從*基礎的語法基礎開發,讓沒有編程基礎的人也學會PHP+MySQL網站開發。
本書分為4篇共19章,第一篇(1~6章)先介紹PHP 7的語法和一些新特色;第二篇(7~10章)是PHP的一些高級應用,如國際化、zip文件處理、圖形圖像操作、正則錶達式;第三篇(11~15章)是MySQL數據庫的基礎入門,包括數據庫、數據錶和數據的常見操作;*後一篇(16~17章)是PHP+MySQL的混閤操作,還包含兩個大型項目的開發步驟。
本書適閤所有想學習網頁開發、Web項目開發的入門讀者,也適閤所有想學習PHP的讀者,還適閤做一些培訓機構的PHP和MySQL培訓教材。
作者簡介
樊愛宛,平頂山學院資深教授,教師。
目錄
第1章 認識PHP 7 1
1.1 PHP的發展曆程 1
1.2 PHP語言的優缺點 2
1.3 誰在用PHP 3
1.4 PHP 7的新特性 3
1.4.1 性能提高 3
1.4.2 標量類型聲明 4
1.4.3 返迴值類型聲明 4
1.4.4 NULL 閤並運算符 4
1.4.5 太空船操作符(組閤比較符) 4
1.4.6 匿名類 5
1.4.7 use加強 5
1.5 搭建PHP開發環境 5
1.5.1 下載XAMPP 6
1.5.2 Windows版本 7
1.5.3 Linux版本 9
1.5.4 MAC OS X版本 10
1.5.5 其他安裝方式 10
1.6 配置和啓動XAMPP 10
1.6.1 Windows版本 10
1.6.2 Linux與MAC OS X版本 11
1.6.3 查看PHP配置信息 13
1.7 第一個PHP程序:Hello World 14
1.8 PHP的開發工具 15
1.8.1 Sublime Text簡介 15
1.8.2 Atom簡介 25
1.8.3 其他流行的集成開發環境與開發工具 30
第2章 PHP基礎語法 31
2.1 PHP標識符 31
2.2 變量 32
2.2.1 變量名稱 32
2.2.2 給變量賦值 32
2.2.3 引用賦值 33
2.2.4 變量的數據類型 33
2.2.5 可變變量 34
2.3 常量 34
2.3.1 聲明常量 34
2.3.2 常量與變量不同 35
2.3.3 檢查某常量是否存在 35
2.3.4 內置常量 35
2.4 數據類型 36
2.4.1 數據類型簡介 36
2.4.2 布爾型(boolean) 36
2.4.3 整型(integer) 37
2.4.4 浮點型(float) 38
2.4.5 字符串(string) 38
2.4.6 數組(array) 40
2.4.7 對象(object) 40
2.4.8 資源(resource) 41
2.4.9 無類型(NULL) 41
2.4.10 數據類型相互轉換 41
2.5 錶達式 42
2.6 運算符 42
2.6.1 算術運算符 42
2.6.2 字符串運算符 43
2.6.3 賦值運算符 43
2.6.4 比較運算符 43
2.6.5 邏輯運算符 44
2.6.6 按位運算符 45
2.6.7 錯誤控製運算符 45
2.6.8 三元運算符 45
2.6.9 NULL 閤並運算符 46
2.6.10 太空船操作符(組閤比較符) 46
2.6.11 運算符的優先級和結閤規則 46
2.7 流程控製 46
2.7.1 條件控製語句if、else、elseif 47
2.7.2 條件控製語句switch、case、break、default 48
2.7.3 while循環語句 48
2.7.4 do...while循環語句 49
2.7.5 for循環語句 49
2.7.6 foreach循環語句 50
2.7.7 使用break/contine語句跳齣循環 51
2.8 函數(function) 51
2.8.1 函數的定義 51
2.8.2 嚮函數傳遞參數 52
2.8.3 通過引用傳遞參數 53
2.8.4 默認參數的值 53
2.8.5 參數類型聲明 54
2.8.6 可變數量的參數列錶 54
2.8.7 使用全局變量 55
2.8.8 使用靜態變量 55
2.8.9 從函數返迴值 56
2.8.10 返迴值類型聲明 56
2.8.11 可變函數 57
2.8.12 匿名函數 57
第3章 PHP與用戶交互 58
3.1 錶單處理 58
3.1.1 錶單簡介 58
3.1.2 GET和POST的區彆 59
3.1.3 PHP與錶單處理 60
3.2 錶單元素及處理 60
3.2.1 文本框 60
3.2.2 單選按鈕(radio)與復選框(checkbox) 61
3.2.3 下拉列錶 63
3.2.4 按鈕 65
3.3 Cookie 66
3.3.1 什麼是Cookie 67
3.3.2 如何創建Cookie 67
3.3.3 如何讀取Cookie 68
3.3.4 如何確認Cookie存在 68
3.3.5 如何刪除Cookie 68
3.4 Session 69
3.4.1 什麼是Session 69
3.4.2 如何創建Session 69
3.4.3 如何存儲Session 70
3.4.4 如何檢測Session是否存在 70
3.4.5 終結Session 71
第4章 字符串和數組 72
4.1 字符串 72
4.1.1 字符串裏字符的類型 72
4.1.2 連接字符串 72
4.1.3 計算字符串長度strlen() 73
4.1.4 檢索字符串 73
4.1.5 截取字符串 75
4.1.6 替換字符串 75
4.1.7 清理字符串 76
4.1.8 切分和組閤字符串 77
4.1.9 其他常用字符串函數 78
4.2 數組的類型 79
4.2.1 數字索引數組 79
4.2.2 關聯索引數組 79
4.2.3 多維數組 80
4.3 統計數組元素個數count()函數 81
4.4 用foreach遍曆數組 82
4.5 設置數組指針—reset()、end()、 next()、prev()、current()、each() 82
4.6 數組排序 83
4.6.1 默認排序sort()、 rsort() 83
4.6.2 關聯索引數組按照鍵值排序asort()、arsort() 85
4.6.3 關聯索引數組按照鍵名排序ksort()、krsort() 85
4.7 數組常見操作 86
4.7.1 嚮數組添加新元素array_push()、array_unshift() 86
4.7.2 刪除數組元素array_pop()、array_shift() 86
4.7.3 刪除數組中的重復值array_unique() 87
4.7.4 對數組進行查詢in_array() 88
4.7.5 其他常用數組函數array_keys()、array_values()、unset() 88
第5章 日期與時間 90
5.1 設置時區 90
5.2 獲取UNIX時間戳 91
5.3 根據時間戳獲取日期和時間 91
5.4 根據日期和時間獲取時間戳 92
5.5 根據時間戳獲取包含日期信息的數組 92
5.6 驗證日期的有效性 93
5.7 輸齣指定格式的日期和時間 94
5.8 麵嚮對象的日期時間類 95
5.8.1 DateTime類 95
5.8.2 DateTimeImmutable類 96
5.8.3 DateTimeZone類 97
5.8.4 DateInterval類 98
5.8.5 DatePeriod類 99
第6章 文件與目錄 100
6.1 文件操作 100
6.1.1 打開文件 100
6.1.2 檢查是否已到達文件末尾 101
6.1.3 讀取文件 102
6.1.4 關閉文件 102
6.1.5 將整個文件讀入一個字符串 103
6.1.6 將字符串寫入文件 103
6.1.7 將整個文件讀入一個數組 104
6.1.8 復製文件 104
6.1.9 刪除文件 105
6.1.10 檢查文件是否正常 105
6.1.11 返迴關於文件的信息 105
6.2 目錄操作 107
6.2.1 打開目錄 107
6.2.2 關閉目錄 107
6.2.3 讀取目錄 107
6.2.4 創建目錄 108
6.2.5 刪除目錄 109
6.2.6 重命名文件或目錄 109
6.2.7 檢查文件或目錄是否存在 109
第7章 PHP與國際化 110
7.1 多字節字符函數 110
7.1.1 檢測字符串的編碼 111
7.1.2 檢查字符串在指定的編碼裏是否有效 111
7.1.3 轉換字符編碼格式 111
7.1.4 解析$_GET字符串 112
7.1.5 按字節數來截取字符串 112
7.2 intl模塊簡介 113
7.2.1 安裝intl模塊 113
7.2.2 Collator類比較字符串 114
7.2.3 NumberFormatter類幫助做財務 114
7.2.4 IntlDateFormatter類顯示中文版的日期時間 115
第8章 PHP與zip文件處理 116
8.1 zip函數 116
8.1.1 打開和關閉zip文件 116
8.1.2 讀取並打印文件/目錄名稱 117
8.1.3 處理zip文件 118
8.2 處理zip文件的必殺技:ZipArchive類 120
8.2.1 打開/關閉壓縮文件 120
8.2.2 解壓縮文件 121
8.2.3 添加目錄與文件 121
8.2.4 遍曆zip文件 123
8.2.5 獲取文件 124
第9章 圖形圖像處理 125
9.1 啓用GD2擴展庫 125
9.2 創建圖形圖像 126
9.2.1 用PHP生成一個簡單圖形 127
9.2.2 詳解PHP生成圖形的步驟 127
9.3 操作圖形圖像 129
9.3.1 更改圖像顔色 129
9.3.2 在圖像上輸齣文字 129
9.4 操作已有的圖片 130
9.4.1 獲取圖片的寬和高 130
9.4.2 生成圖片的縮略圖 131
9.4.3 給圖片添加水印效果——文字水印 132
9.4.4 給圖片添加水印效果——圖片水印 133
精彩書摘
第 10 章
? 正則錶達式 ?
要在計算機係統中查找某個文件,碰巧忘記瞭文件名,但知道該文件的類型,即知道該文件的後綴名,比如,要找一個圖片,那麼可能會通過*.png這樣的字符來幫助查找,其中字符*就代錶瞭一個或多個字符。計算機通過這樣的字符組閤,會將係統中所有以.png為後綴名的文件列齣來,如:m.png、flag.png、river.png、mydog.png等,以便用戶找到需要的圖片文件。
*.png就是一個錶達式,我們可以簡單理解為正則錶達式(Regular expression)。正則錶達式是一種可以用於模式匹配的強大工具。簡單地說,正則錶達式就是一套規則,用於去判定其他的元素是否符閤它。PHP繼承瞭Perl的正則錶達式法則,還有自己的一套法則。本章將詳細介紹PHP的正則錶達式。
10.1 在PHP中使用正則錶達式
本節通過一個例子讓讀者瞭解正則錶達式在PHP中如何使用,以及PHP中有關正則的函數。這些函數與PHP 5中的函數不同,如果是升級PHP代碼的讀者請務必注意,調試PHP 5中的正則函數會報錯。
10.1.1 應用正則的函數
在PHP中主要有3個函數來處理正則錶達式,用來檢查一個字符串是否滿足一個的規則。它們都把一個正則錶達式作為它們的第一個參數,語法為:
? int preg_match(string $pattern , string $subject):最常用的正則錶達式函數,搜索跟正則錶達式pattern匹配的一個字符串。搜索到返迴1,否則返迴0。這個函數在PHP 5中是ereg()。
? string preg_replace(mixed $pattern , mixed $replacement , mixed $subject):搜索跟正則錶達式pattern匹配的一個字符串,並用新的字符串代替所有這個錶達式齣現的地方,PHP 5中是replace()。
? array preg_split(string $pattern , string $subject) :搜索和正則錶達式匹配的字符串,並且以字符串集閤的方式返迴匹配結果。
本節,旨在給齣PHP提供的正則錶達式函數,並簡單介紹其功能。
10.1.2 通過一個例子理解正則
舉一個簡單的例子:在一個用戶注冊的頁麵中(例如,一個論壇或者交友網站的注冊頁麵),上麵可能有“電子郵件”這一項需要填寫。對係統來說,需要判定用戶所填寫的電子郵件地址是否閤法,即是否符閤電子郵件地址的規則。
【示例10-1】未使用正則檢測電子郵件地址規則。
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
?>
上麵代碼實現瞭一個函數validate_email1(),使用字符串操作中的定位字符函數,用來判斷一個字符串是否是一個閤法的電子郵件地址。仔細考慮實現的功能,實際上是在判斷一個字符串是否具有一定的模式,或者說是否滿足一定的規則。在這種情況下,就可以使用正則錶達式來實現相同的功能。
【示例10-2】使用正則檢查電子郵件地址規則。
……
前言/序言
PHP是當前開發Web應用係統中比較理想的工具,它易於使用、功能強大、成本低廉、安全性高、開發速度快且執行靈活,應用非常廣泛。使用PHP+MySQL開發的Web項目,在軟件方麵的投資成本較低、運行穩定,因此現在越來越多的供應商、用戶和企業投資者日益認識到使用PHP開發的各種商業應用和協作構建的各種網絡應用程序,變得更加具有競爭力,更加吸引客戶。無論是從性能、質量,還是價格上,PHP+MySQL都成為企業必須考慮的開發組閤。
對於PHP+MySQL應用開發的新手而言,本書不失為一本好的入門教材,使用瞭最新版本PHP 7,又從最基礎的語法入手,結閤小的示例,讓讀者能夠學完就會。
本書特點
1. 以代碼驅動學習
每章都配有與本章知識相關的小示例,增加讀者的動手能力,用代碼來驅動讀者一步步學會PHP。
2. 基於最新版本學習
全書采用PHP 7+MySQL 5.6的最新版本搭配,讓讀者學習前沿技術,學完不會落伍。
3. 大型網站項目引導
本書最後兩個案例給齣大型網站開發的完整流程,從數據庫設計到模塊分析到最終每個模塊的界麵設計和開發,讓讀者瞭解PHP+MySQL的最終實踐情況和如何去實踐。
4. 零基礎入門
本書是一本完全站在沒有PHP語言基礎的讀者角度寫的書,全書將PHP語言拆分成一個個小的技術點,讓讀者能輕鬆閱讀下去,而且能夠輕鬆學得會。
5. 配備素材,方便學習
為瞭方便讀者學習,本書配套光盤中附帶瞭所有案例需要的源文件。源文件為讀者學習提供瞭參考,同時用戶可以直接按照書中操作步驟的講解進行操作,以便提高學習效率。
閱讀指南
全書內容包括4篇19章。
第1章介紹瞭PHP 7語言的一些新特性,首先讓讀者瞭解為什麼需要學習PHP,而且得學習最新版本PHP 7;然後讓初學者學習搭建PHP的開發環境和開發工具,最後通過一個HelloWorld的例子讓讀者瞭解PHP程序如何開始。
第2章介紹瞭PHP語言的基礎語法,這也是學習一門語言的開發的基礎,包括瞭標識符、變量、常量、數據類型、錶達式、運算符、流程控製、函數。
第3章介紹瞭PHP操作網頁的一些基礎,這是動態網頁的關鍵,就是與用戶的交互,這些交互包括錶單處理、錶單元素處理、Cookie、Session。我們都知道網頁操作離不開錶單,我們所看到的網頁中的文字、圖像、文本框、按鈕,這些都是錶單,所以本章也是PHP進行網頁開發的基礎。
第4章介紹瞭PHP中的字符串和數組,當我們多寫一些PHP網頁開發代碼的時候就會發現,其他網頁開發中很多的代碼都涉及字符串的操作和數組的操作,在PHP中,它們大多通過函數來完成。
第5章介紹瞭PHP中的日期和時間,這是網頁開發很常見的操作,所以PHP提供瞭大量的函數,學起來很簡單,相信這章不會難倒讀者。
第6章介紹瞭文件和目錄的操作,我們經常操作電腦的讀者在操作係統中的各種操作其實就是對文件的操作,網頁開發中也經常需要操作文件,本章就介紹瞭用PHP打開、讀取等常見的文件操作。
第7章介紹瞭國際化,其實讀者對此都不陌生,我們看到很多國際網站都有“選擇語言”這一項,甚至蘋果手機中也有這一項。我們選擇一下語言,係統所有的界麵都會變為中文,這就是介紹國際化的原因。相信讀者看完本章就明白瞭。
第8章介紹瞭zip文件的處理,網站上的文件越來越多,我們都知道網盤,網盤為瞭存儲更多的文件,就會包含一些壓縮文件,本章就介紹瞭如何用PHP操作這些壓縮文件。
第9章介紹瞭PHP如何操作圖形圖像,其中會介紹GD2擴展庫,不僅可以操作已經存在的圖片,還可以利用這個庫來創建圖片。
第10章是正則錶達式的介紹,不管哪門語言,都會學習到正則錶達式,它是文字處理的關鍵,PHP也提供瞭一些這方麵的函數。本章不僅會讓讀者認識什麼是正則,也會學到如何處理網頁中的一些驗證方法。
第11章開始介紹MySQL,本章站在入門讀者的基礎上,詳細介紹瞭MySQL的安裝、配置、啓動、登錄,最後還對MySQL安裝失敗的常見原因進行瞭分析。
第12章是數據庫的基本操作,包括創建數據庫、刪除數據庫、學習數據庫存儲引擎,還會學習如何查看MySQL默認的存儲引擎。
第13章是數據錶的基本操作,包括創建數據錶、查看數據錶結構、修改數據錶、刪除數據庫錶,最後還會學習一些數據錶操作的常見問題。
第14章是數據的基本操作,包括添加數據、更新數據、刪除數據、查詢數據,最後還會學習一些數據操作的常見問題。
第15章是數據庫的整體操作,為瞭保障用戶的一些信息,我們都知道網站要經常進行備份,這類備份主要就是數據庫的備份,本章包括數據備份、數據還原、數據庫遷移。
第16章介紹瞭PHP操作MySQL的最基本方式,包括連接和關閉數據庫、操作數據庫、操作數據錶、操作數據。
第17章介紹瞭PHP操作MySQL數據庫的另一種方式——RedBeanPHP,包括它的下載、安裝、CRUD操作和調試。
第18章是使用PHP+MySQL構建模擬考試係統,利用這個項目,演示PHP開發Web係統的整體流程。
第19章是使用PHP+MySQL構建在綫購物網站,通過這個項目,讓讀者瞭解一個網站從開始設計到實戰開發的整個過程。
讀者對象
本書內容由淺入深,適用於下列讀者:
? 從事動態網站開發人員
? 接受PHP培訓的學員
? Web開發愛好者
? 網站維護及管理人員
? 初級或專業的網站開發人員
? 大中專院校的教師及培訓中心的講師
? 進行畢業設計和對PHP感興趣的學生
? 從事ASP或JSP而想轉嚮PHP開發的程序員
光盤內容
本書配套光盤內容包括示例源代碼、課件、教學視頻。
如果光盤有問題,郵件主題為“PHP+MySQL從零開始學”。
感謝
本書由平頂山學院的樊愛宛和黃凱主筆,其中第1~10、16~19章由樊愛宛編寫,第11~15章由黃凱編寫。參與本書創作的還有瀋超、李勇、王立平、劉祥淼、彭霽、曹卉、林江閩、李陽、孫亞男、楊超、韓廣義、楊旺功、任娜娜。由於編者水平有限,書中不足之處在所難免,歡迎廣大讀者批評指正。
作者
2017年8月