PHP和MySQL Web開發(fā)(原書第5版)
定 價(jià):129 元
叢書名:Web開發(fā)技術(shù)叢書
- 作者:[美] 盧克·韋林
- 出版時(shí)間:2018/1/1
- ISBN:9787111587736
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP312.8;TP311.138
- 頁碼:644
- 紙張:膠版紙
- 版次:1
- 開本:16開
歡迎來到PHP和MySQL Web開發(fā)的世界。在本書中,我們將把使用PHP與MySQL的經(jīng)驗(yàn)和心得體會(huì)毫無保留地分享給你,PHP和MySQL是目前熱門的兩個(gè)Web開發(fā)工具。
前 言 Preface歡迎來到PHP和MySQL Web開發(fā)的世界。在本書中,我們將把使用PHP與MySQL的經(jīng)驗(yàn)和心得體會(huì)毫無保留地分享給你,PHP和MySQL是目前最熱門的兩個(gè)Web開發(fā)工具。
前言主要介紹以下內(nèi)容:
為什么要學(xué)習(xí)本書學(xué)習(xí)本書將掌握哪些知識(shí)PHP和MySQL及其強(qiáng)大之處PHP和MySQL最新版本變化本書組織結(jié)構(gòu)下面,就讓我們開始吧!
為什么要學(xué)習(xí)本書本書將介紹如何創(chuàng)建可交互的Web應(yīng)用,包括從最簡單的訂單表單到復(fù)雜而又安全的Web應(yīng)用。此外,讀者還將了解如何使用開源代碼技術(shù)來實(shí)現(xiàn)它。
本書的目標(biāo)讀者群是已經(jīng)了解了HTML的基礎(chǔ)知識(shí),并且以前曾經(jīng)使用過一些現(xiàn)代編程語言進(jìn)行過程序開發(fā)的讀者,但是并不要求讀者從事過Web編程或者使用過關(guān)系型數(shù)據(jù)庫。如果你是入門級(jí)程序員,你也將發(fā)現(xiàn)本書是非常實(shí)用的,但是你可能會(huì)需要更長的時(shí)間來吸收和消化它。我們盡量做到不遺漏任何基本概念,但是在介紹這些基本概念的時(shí)候都比較簡略。本書的典型讀者是希望掌握PHP和MySQL并致力于創(chuàng)建大型或電子商務(wù)類型Web站點(diǎn)的人。有些讀者可能已經(jīng)使用過其他Web開發(fā)語言;如果是這樣,就更容易掌握本書的內(nèi)容。
編寫本書第1版的原因在于,我們已經(jīng)厭倦了尋找那些充其量只是最基本的PHP函數(shù)參考的圖書。那些圖書是有用的,但是當(dāng)老板或客戶要求你趕快編寫一個(gè)購物車時(shí),那些圖書無法幫助你。我們盡量使本書中的每一個(gè)示例都有實(shí)用價(jià)值。許多示例代碼可以在Web站點(diǎn)上直接使用,而大多數(shù)代碼只要稍做修改就可以直接使用。
學(xué)習(xí)本書將掌握哪些知識(shí)學(xué)習(xí)本書后,讀者將能夠創(chuàng)建實(shí)用的動(dòng)態(tài)Web站點(diǎn)。如果你已經(jīng)使用過普通HTML創(chuàng)建Web站點(diǎn),你將認(rèn)識(shí)到這種方法的局限性。一個(gè)純HTML網(wǎng)站的靜態(tài)內(nèi)容就只能是靜態(tài)的。除非專門對(duì)其進(jìn)行手動(dòng)更新,否則其內(nèi)容不會(huì)發(fā)生變化。用戶也無法以任何有意義的方式與站點(diǎn)進(jìn)行交互。
使用一種編程語言(例如,PHP)和數(shù)據(jù)庫(例如,MySQL),可以創(chuàng)建動(dòng)態(tài)的站點(diǎn),也可以自定義站點(diǎn)并且在站點(diǎn)中包含實(shí)時(shí)信息。
在本書中,即使是在介紹性章節(jié),我們也是以實(shí)戰(zhàn)應(yīng)用的介紹為重點(diǎn)。本書從一個(gè)簡單系統(tǒng)開始,然后介紹PHP和MySQL的不同部分。
之后討論與創(chuàng)建一個(gè)真實(shí)Web站點(diǎn)相關(guān)的安全性和身份驗(yàn)證方面的問題,并且介紹如何使用PHP和MySQL來實(shí)現(xiàn)這些功能。通過討論JavaScript及其在Web應(yīng)用開發(fā)中的角色,介紹如何集成協(xié)同前端和后端技術(shù)。
本書第五篇將介紹如何開發(fā)真實(shí)項(xiàng)目,并且和讀者一起設(shè)計(jì)、計(jì)劃及構(gòu)建如下項(xiàng)目:用戶身份驗(yàn)證和個(gè)性化基于Web的電子郵件客戶端社交媒體集成這些項(xiàng)目都是可以直接使用的,或者可以經(jīng)過一定的修改來滿足讀者的實(shí)際需要。之所以選擇這些項(xiàng)目是因?yàn)槲覀兿嘈潘鼈兪荳eb程序員最常面臨的項(xiàng)目。如果讀者的需求有所不同,本書也可以幫助大家實(shí)現(xiàn)目標(biāo)。
什么是PHPPHP是一種專門為Web設(shè)計(jì)的服務(wù)器端腳本語言。在一個(gè)HTML頁面中,可以嵌入PHP代碼,這些代碼在頁面每次被訪問時(shí)執(zhí)行。PHP代碼將在Web服務(wù)器中被解釋并且生成HTML或訪問者可見的輸出。
PHP出現(xiàn)于1994年,最初只是Rasmus Lerdorf一個(gè)人的投入。后來被一些天才所接受,它經(jīng)歷了數(shù)次重大的重寫,才變成了我們今天所看到的廣為使用的、成熟的PHP。根據(jù)Google公司的Greg Michillie 2014年5月的數(shù)據(jù), PHP已經(jīng)運(yùn)行于全球75%的Web站點(diǎn),而到2016年6月,這個(gè)數(shù)據(jù)已經(jīng)變成82%。
PHP是一個(gè)開源的項(xiàng)目,這就意味著,你可以訪問其源代碼,也可以免費(fèi)使用、修改并且再次發(fā)布。
PHP最初只是Personal Home Page(個(gè)人主頁)的縮寫,但是后來經(jīng)過修改,采用了GNU命名慣例(GNU = Gnu抯 Not UNIX),如今它是PHP超文本預(yù)處理程序(PHP,Hypertext Preprocessor)的縮寫。
目前,PHP的主要版本是7。該版本的Zend引擎經(jīng)過完全重寫,而且還實(shí)現(xiàn)了一些主要的語言改進(jìn)。本書所有代碼均已在PHP 7以及PHP 5.6下測試和驗(yàn)證。
PHP的主頁是:http://www.php.net。
Zend Technologies的主頁是:http://www.zend.com。
MySQL是什么MySQL(發(fā)音為My-Ess-Que-Ell)是一個(gè)快速而又健壯的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(Relational Database Management System,RDBMS)。數(shù)據(jù)庫將允許你高效地存儲(chǔ)、搜索、排序和檢索數(shù)據(jù)。MySQL服務(wù)器將控制對(duì)數(shù)據(jù)的訪問,從而確保多個(gè)用戶可以并發(fā)訪問數(shù)據(jù)、可以快速訪問數(shù)據(jù)以及只有授權(quán)用戶才能獲得數(shù)據(jù)訪問。因此,MySQL是一個(gè)多用戶、多線程的服務(wù)器。它使用了結(jié)構(gòu)化查詢語言(SQL),該語言是標(biāo)準(zhǔn)數(shù)據(jù)庫查詢語言。MySQL是在1996年公布的,但是其開發(fā)歷史可以追溯到1979年。它是世界上最受歡迎的開源數(shù)據(jù)庫,已經(jīng)多次獲得Linux Journal Readers?Choice大獎(jiǎng)。
MySQL可以在雙許可模式下使用?梢栽陂_源許可(GPL)下免費(fèi)使用它,條件是滿足該協(xié)議的一些條款。如果希望發(fā)布一個(gè)包括MySQL的非GPL應(yīng)用程序,可以購買一個(gè)商業(yè)許可。
為什么要使用PHP和MySQL當(dāng)我們準(zhǔn)備創(chuàng)建一個(gè)站點(diǎn)時(shí),可以選擇使用許多不同的產(chǎn)品。
About the Authors 作者簡介Luke Welling是OmniTI公司的一名軟件工程師,經(jīng)常出席一些國際會(huì)議(例如,OSCON、ZendCon、MySQLUC、PHPCon、OSDC以及LinuxTag)并就開源和Web開發(fā)話題發(fā)表演講。在加入OmniTI公司之前,他曾作為數(shù)據(jù)庫提供商MySQL AB的Web分析師為Hitwise.com公司工作。此外,他還是Tangled Web Design公司的獨(dú)立顧問,并曾在澳大利亞墨爾本RMIT大學(xué)教授計(jì)算機(jī)科學(xué)課程。他擁有應(yīng)用科學(xué)(計(jì)算機(jī)科學(xué))的學(xué)士學(xué)位。
Laura Thomson是Mozilla公司的研發(fā)總監(jiān)。之前,她是OmniTI公司和Tangled Web Design公司的董事。此外,Laura曾經(jīng)在RMIT大學(xué)和波士頓咨詢公司工作過。她擁有應(yīng)用科學(xué)(計(jì)算機(jī)科學(xué))學(xué)士學(xué)位和工程學(xué)(計(jì)算機(jī)系統(tǒng)工程)學(xué)士學(xué)位。閑暇時(shí)間,她非常喜歡騎馬,熱衷于免費(fèi)軟件和開源軟件。
貢獻(xiàn)作者Julie C. Meloni是一名軟件開發(fā)經(jīng)理以及技術(shù)顧問,生活在華盛頓特區(qū)。她編著過一些圖書,發(fā)表過一些文章,主要集中在基于Web的開發(fā)語言和數(shù)據(jù)庫領(lǐng)域,其中包括暢銷書《Sams Teach Yourself PHP,MySQL, and Apache All in One》。
John Coggeshall是Internet Technology Solutions公司的創(chuàng)始人,該公司是Internet和PHP相關(guān)的顧問公司,服務(wù)于全球用戶。同時(shí),他還是CoogleNet公司的創(chuàng)始人,該公司是基于WiFi網(wǎng)絡(luò)的訂閱服務(wù)公司。作為Zend Technologies公司全球服務(wù)團(tuán)隊(duì)的成員,他從1997年開始使用PHP,目前已經(jīng)出版了4本相關(guān)圖書并發(fā)表了超過100篇關(guān)于PHP技術(shù)的文章。
Jennifer Kyrnin是一名Web設(shè)計(jì)人員,自1995年開始從事Web設(shè)計(jì)和圖書編寫。她出版的圖書包括《Sams Teach Yourself Bootstrap in 24 Hours》《Sams Teach Yourself Responsive Web Design in 24 Hours》以及《Sams Teach Yourself HTML5 Mobile Application Development in 24 Hours》。
目 錄 Contents
本書贊譽(yù)
譯者序
前言
作者簡介
第一篇 使用PHP
第1章 PHP快速入門教程2
1.1 開始之前:了解PHP3
1.2 創(chuàng)建示例Web應(yīng)用:Bob汽車零部件商店3
1.2.1 創(chuàng)建訂單表單3
1.2.2 表單處理 5
1.3 在HTML中嵌入PHP5
1.3.1 PHP標(biāo)記6
1.3.2 PHP語句7
1.3.3 空格7
1.3.4 注釋 8
1.4 添加動(dòng)態(tài)內(nèi)容8
1.4.1 調(diào)用函數(shù)9
1.4.2 使用date()函數(shù) 9
1.5 訪問表單變量10
1.5.1 表單變量 10
1.5.2 字符串連接12
1.5.3 變量和字面量12
1.6 理解標(biāo)識(shí)符 13
1.7 檢查變量類型 14
1.7.1 PHP的數(shù)據(jù)類型 14
1.7.2 類型強(qiáng)度 14
1.7.3 類型轉(zhuǎn)換 15
1.7.4 可變變量 15
1.8 聲明和使用常量 16
1.9 理解變量作用域 16
1.10 使用操作符 17
1.10.1 算術(shù)操作符 18
1.10.2 字符串操作符18
1.10.3 賦值操作符 19
1.10.4 比較操作符 21
1.10.5 邏輯操作符 22
1.10.6 位操作符 22
1.10.7 其他操作符 23
1.11 計(jì)算表單總金額 25
1.12 理解操作符優(yōu)先級(jí)和結(jié)合性 26
1.13 使用變量處理函數(shù)27
1.13.1 測試和設(shè)置變量類型 27
1.13.2 測試變量狀態(tài) 28
1.13.3 變量的重解釋 29
1.14 根據(jù)條件進(jìn)行決策 29
1.14.1 if語句 29
1.14.2 代碼塊 30
1.14.3 else語句 30
1.14.4 elseif語句 31
1.14.5 switch語句 32
1.14.6 比較不同條件 33
1.15 通過迭代實(shí)現(xiàn)重復(fù)動(dòng)作 34
1.15.1 while循環(huán) 35
1.15.2 for循環(huán)和foreach循環(huán) 36
1.15.3 do...while循環(huán) 37
1.16 從控制結(jié)構(gòu)或腳本中跳出 38
1.17 使用其他控制結(jié)構(gòu)語法 38
1.18 使用declare 39
1.19 下一章 39
第2章 數(shù)據(jù)存儲(chǔ)和讀取40
2.1 保存數(shù)據(jù)以便后期使用 40
2.2 存儲(chǔ)和獲取Bob的訂單 41
2.3 文件處理 41
2.4 打開文件 42
2.4.1 選擇文件模式 42
2.4.2 使用fopen()打開文件 42
2.4.3 通過FTP或HTTP打開文件 44
2.4.4 解決打開文件時(shí)可能遇到的問題 45
2.5 寫文件 47
2.5.1 fwrite()的參數(shù) 47
2.5.2 文件格式 47
2.6 關(guān)閉文件 48
2.7 讀文件 50
2.7.1 以只讀模式打開文件:fopen()51
2.7.2 知道何時(shí)讀完文件:feof()51
2.7.3 每次讀取一行數(shù)據(jù):fgets()、fgetss()和fgetcsv() 52
2.7.4 讀取整個(gè)文件:readfile()、fpassthru()、file()以及file_get_contents()53
2.7.5 讀取一個(gè)字符:fgetc() 53
2.7.6 讀取任意長度:fread()54
2.8 使用其他文件函數(shù) 54
2.8.1 查看文件是否存在:file_exists() 54
2.8.2 確定文件大。篺ilesize() 55
2.8.3 刪除一個(gè)文件:unlink()55
2.8.4 在文件中定位:rewind()、fseek()和ftell() 55
2.9 文件鎖定 56
2.10 更好的方式:數(shù)據(jù)庫管理系統(tǒng) 57
2.10.1 使用普通文件的幾個(gè)問題 58
2.10.2 RDBMS是如何解決這些問題的 58
2.11 進(jìn)一步學(xué)習(xí) 59
2.12 下一章 59
第3章 使用數(shù)組60
3.1 什么是數(shù)組 60
3.2 數(shù)字索引數(shù)組 61
3.2.1 數(shù)字索引數(shù)組的初始化 61
3.2.2 訪問數(shù)組內(nèi)容 62
3.2.3 使用循環(huán)訪問數(shù)組 63
3.3 使用不同索引的數(shù)組 64
3.3.1 初始化數(shù)組 64
3.3.2 訪問數(shù)組元素 64
3.3.3 使用循環(huán)語句 64
3.4 數(shù)組操作符 66
3.5 多維數(shù)組 66
3.6 數(shù)組排序 69
3.6.1 使用sort()函數(shù) 69
3.6.2 使用asort()函數(shù)和ksort()函數(shù)對(duì)數(shù)組排序 70
3.6.3 反向排序 70
3.7 多維數(shù)組排序 70
3.7.1 使用array_multisort()函數(shù)71
3.7.2 用戶定義排序 71
3.7.3 自定義排序函數(shù)的反序 73
3.8 對(duì)數(shù)組進(jìn)行重新排序 73
3.8.1 使用shuffle()函數(shù) 73
3.8.2 逆序數(shù)組內(nèi)容75
3.9 從文件載入數(shù)組 75
3.10 執(zhí)行其他數(shù)組操作 79
3.10.1 在數(shù)組中瀏覽:each()、current()、reset()、end()、next()、pos()和prev()79
3.10.2 對(duì)數(shù)組每一個(gè)元素應(yīng)用函數(shù):array_walk() 80
3.10.3 統(tǒng)計(jì)數(shù)組元素個(gè)數(shù):count()、sizeof()和array_count_values() 81
3.10.4 將數(shù)組轉(zhuǎn)換成標(biāo)量變量:extract() 81
3.11 進(jìn)一步學(xué)習(xí) 83
3.12 下一章 83
第4章 字符串操作與正則表達(dá)式84
4.1 創(chuàng)建一個(gè)示例應(yīng)用:智能表單郵件 84
4.2 字符串的格式化86
4.2.1 字符串截?cái)啵篶hop()、ltrim()和trim() 87
4.2.2 格式化字符串以便輸出 87
4.3 使用字符串函數(shù)連接和分割字符串93
4.3.1 使用函數(shù)explode()、implode()和join() 93
4.3.2 使用strtok()函數(shù) 94
4.3.3 使用substr()函數(shù) 95
4.4 字符串比較 96
4.4.1 字符串的排序:strcmp()、strcasecmp()和strnatcmp() 96
4.4.2 使用strlen()函數(shù)判斷字符串長度 96
4.5 使用字符串函數(shù)匹配和替換子字符串 97
4.5.1 在字符串中查找字符串:strstr()、strchr()、strrchr()和stristr() 97
4.5.2 查找子字符串的位置:strpos()和strrpos() 98
4.5.3 替換子字符串:str_replace()和substr_replace() 99
4.6 正則表達(dá)式的介紹 100
4.6.1 基礎(chǔ)知識(shí) 100
4.6.2 分隔符101
4.6.3 字符類和類型 101
4.6.4 重復(fù) 102
4.6.5 子表達(dá)式 102
4.6.6 子表達(dá)式計(jì)數(shù) 103
4.6.7 定位到字符串的開始或末尾 103
4.6.8