本書從搭建PHP應(yīng)用程序開發(fā)環(huán)境開始,首先介紹了PHP語言的編程基礎(chǔ)知識、常用技巧以及與一般Web對象的操作,然后介紹了PHP與數(shù)據(jù)庫的交互操作方法,并給出了具體的應(yīng)用實例。本書比較詳細地講解了PHP在實際開發(fā)中的應(yīng)用,給后續(xù)的學習打下了良好的基礎(chǔ)。
本書內(nèi)容緊湊、實例豐富、結(jié)構(gòu)嚴整、從易到難、由淺入深、循序漸進地系統(tǒng)介紹了PHP開發(fā)Web應(yīng)用程序的技術(shù)。本書通俗易懂,配備大量的實例,供讀者加深鞏固所學知識,有助于讀者進行開發(fā)實踐。
第1章 PHP開發(fā)環(huán)境搭建
1.1 PHP簡介
1.1.1 PHP語言發(fā)展簡史
1.1.2 PHP發(fā)展現(xiàn)狀與展望
1.1.3 PHP語言的優(yōu)勢對比
1.1.4 學習提示
1.2 PHP的應(yīng)用范圍及案例
1.2.1 PHP可以做什么
1.2.2 PHP擅長的領(lǐng)域及產(chǎn)
品介紹
1.2.3 PHP不適合做什么
1.2.4 其他案例
1.3 PHP的“Hello,world”預(yù)覽
1.3.1 第一個PHP程序
“Hello,world”
第1章 PHP開發(fā)環(huán)境搭建
1.1 PHP簡介
1.1.1 PHP語言發(fā)展簡史
1.1.2 PHP發(fā)展現(xiàn)狀與展望
1.1.3 PHP語言的優(yōu)勢對比
1.1.4 學習提示
1.2 PHP的應(yīng)用范圍及案例
1.2.1 PHP可以做什么
1.2.2 PHP擅長的領(lǐng)域及產(chǎn)
品介紹
1.2.3 PHP不適合做什么
1.2.4 其他案例
1.3 PHP的“Hello,world”預(yù)覽
1.3.1 第一個PHP程序
“Hello,world”
1.3.2 學習PHP該準備哪
些軟件
1.3.3 相關(guān)知識領(lǐng)域介紹
1.4 程序運行環(huán)境的搭建
1.4.1 Apache簡介
1.4.2 安裝Apache與PHP
1.4.3 使用phpinfo()確認
Apache與PHP的
安裝成功
1.4.4 Apache的啟動與關(guān)閉
1.4.5 Apache的配置文件
httpd.conf與.htaccess
簡介
1.4.6 PHP的配置文件
php.ini簡介
1.4.7 PHP常用參數(shù)的配置
1.5 幾種綜合網(wǎng)絡(luò)服務(wù)器系統(tǒng)的
安裝
1.5.1 XAMPP
1.5.2 WAMP
1.5.3 Appserv
1.6 幾種開發(fā)工具簡介
1.6.1 Vi及Vim
1.6.2 Eclipse+PHPEclipse
插件
1.6.3 UltraEdit
1.6.4 EditPlus
1.6.5 支持PHP的IDE
環(huán)境
1.7 小結(jié)
第2章 PHP基礎(chǔ)語法
2.1 語言構(gòu)成與工作原理
2.2 常量與變量
2.2.1 常量的定義
2.2.2 變量的定義
2.2.3 變量的作用域
2.2.4 動態(tài)變量
2.3 運算符和關(guān)鍵字
2.4 流程控制語法
2.4.1 程序控制語句簡介
2.4.2 條件控制語句
2.4.3 循環(huán)控制語句
2.4.4 轉(zhuǎn)移控制語句
2.5 表達式
2.5.1 表達式的分類
2.5.2 算術(shù)操作表達式
2.5.3 字符串操作表達式
2.5.4 邏輯操作表達式
2.5.5 比較操作表達式
2.5.6 位操作表達式
2.5.7 運算符的優(yōu)先級
2.6 特殊的全局變量
2.7 文件包含
2.7.1 使用require和
require_once語句
進行文件包含
2.7.2 使用include與
include_once語句
進行文件包含
2.8 小結(jié)
第3章 PHP數(shù)據(jù)類型與操作
3.1 PHP的數(shù)據(jù)類型
3.1.1 標量數(shù)據(jù)類型
3.1.2 合成數(shù)據(jù)類型
3.1.3 特殊的數(shù)據(jù)類型
3.1.4 數(shù)據(jù)類型的獲得與驗證
3.2 數(shù)據(jù)類型間的轉(zhuǎn)換
3.2.1 轉(zhuǎn)換成整型
3.2.2 轉(zhuǎn)換成浮點型
3.2.3 轉(zhuǎn)換成字符串型
3.2.4 轉(zhuǎn)換成布爾型
3.2.5 轉(zhuǎn)換成數(shù)組
3.2.6 轉(zhuǎn)換成對象
3.2.7 使用函數(shù)進行數(shù)據(jù)
類型的強制轉(zhuǎn)換
3.3 小結(jié)
第4章 函數(shù)處理與數(shù)據(jù)引用
4.1 函數(shù)的定義與使用
4.1.1 函數(shù)的調(diào)用
4.1.2 用戶自定義函數(shù)的編寫
4.2 PHP常用函數(shù)
4.2.1 獲得日期時間信息
函數(shù)getdate
4.2.2 獲得當前時間函數(shù)
gettimeofday
4.2.3 日期驗證函數(shù)
checkdate
4.2.4 格式化本地時間日期
函數(shù)date
4.2.5 獲得本地化時間戳
函數(shù)mktime
4.2.6 輸出控制函數(shù)flush
4.2.7 變量檢測函數(shù)isset與
變量釋放函數(shù)unset
4.2.8 隨機函數(shù)rand與srand
4.3 關(guān)于引用的解釋
4.3.1 對變量的引用
4.3.2 對函數(shù)的引用
4.3.3 引用的釋放
4.4 小結(jié)
第5章 PHP中類的應(yīng)用
5.1 PHP中面向?qū)ο蟪绦蛟O(shè)計的
應(yīng)用
5.1.1 類簡介
5.1.2 類的信息封裝
5.1.3 靜態(tài)類
5.2 創(chuàng)建一個簡單類
5.3 PHP5與PHP4的差異
5.4 定義屬性和方法
5.4.1 屬性與方法的定義
5.4.2 傳統(tǒng)的構(gòu)造函數(shù)
5.4.3 PHP類中的一些特殊
方法
5.5 類的引用、擴展與繼承
5.5.1 類的引用
5.5.2 類的擴展與繼承
5.6 操作與調(diào)用
5.6.1 靜態(tài)類的調(diào)用
5.6.2 實例類型判斷方法
instanceof
5.6.3 對象的克隆
5.7 一些設(shè)計觀念
5.7.1 策略模式(Strategy
Pattern)
5.7.2 單例模式(Singleton
Pattern)
5.7.3 工廠模式(Factory
Pattern)
5.8 接口與抽象類
5.8.1 接口的定義
5.8.2 單一接口的實現(xiàn)
5.8.3 多重接口的實現(xiàn)
5.8.4 抽象類
5.9 小結(jié)
第6章 文件系統(tǒng)與文本數(shù)據(jù)
操作
6.1 PHP中的目錄操作
6.1.1 打開目錄
6.1.2 關(guān)閉目錄
6.1.3 讀取目錄中的文件
6.1.4 創(chuàng)建目錄
6.1.5 刪除目錄
6.2 PHP中的文件操作
6.2.1 打開文件
6.2.2 關(guān)閉文件
6.2.3 讀取文件
6.2.4 寫入文件
6.2.5 刪除文件
6.2.6 復(fù)制文件
6.3 本地文件的操作實例
小型留言本
6.3.1 留言發(fā)表模塊
6.3.2 瀏覽模塊
6.4 遠程文件的操作實例
6.5 文件的上傳與下載
6.5.1 文件的上傳
6.5.2 文件的下載
6.6 小結(jié)
第7章 字符的處理與正則表
達式
7.1 字符類型的特殊性
7.2 字符的顯示與格式化
7.2.1 字符的顯示
7.2.2 字符的格式化
7.3 常見字符串的操作
7.3.1 字符串重復(fù)操作
str_repeat
7.3.2 字符串替換操作str_replace
和str_ireplace
7.3.3 字符串分解操作str_split
7.3.4 字符串單詞數(shù)的計算函
數(shù)str_word_count
7.3.5 字符串查找操作strstr
7.3.6 獲得字符串長度strlen
7.3.7 獲得字符串子串substr
7.4 正則表達式簡介
7.5 正則表達式與字符操作綜合
應(yīng)用
7.5.1 獲得與模式匹配的數(shù)組
單元preg_grep
7.5.2 進行全局正則表達式
匹配preg_match_all
7.5.3 進行正則表達式匹配
preg_match
7.5.4 轉(zhuǎn)義正則表達式字符
preg_quote
7.5.5 執(zhí)行正則表達式的搜索和
替換函數(shù)preg_replace
7.5.6 通過回調(diào)函數(shù)執(zhí)行正則
表達式的搜索和替換
preg_replace_ callback
7.5.7 用正則表達式進行字符
串分割preg_split
7.6 字符操作的注意事項
7.7 小結(jié)
第8章 數(shù)組操作與數(shù)據(jù)結(jié)構(gòu)
算法
8.1 一維數(shù)組與多維數(shù)組
8.1.1 一維數(shù)組簡介
8.1.2 多維數(shù)組簡介
8.2 常用的數(shù)組操作
8.2.1 數(shù)組的創(chuàng)建與調(diào)用
8.2.2 數(shù)組的更新
8.2.3 數(shù)組元素的遍歷
8.3 數(shù)組索引與鍵名的操作
技巧
8.4 數(shù)組的排序
8.4.1 遞增排序sort
8.4.2 遞減排序rsort
8.4.3 數(shù)組排序array_
multisort
8.5 幾種數(shù)組的應(yīng)用實例
8.5.1 順序查找
8.5.2 二分法查找
8.5.3 使用array_search
函數(shù)進行查找
8.5.4 線性表的入棧與出棧
8.5.5 數(shù)組的合并
8.5.6 數(shù)組的拆分
8.5.7 隨機排序
8.6 小結(jié)
第9章 PHP程序調(diào)試
9.1 PHP中常見錯誤類型
9.1.1 語法錯誤
9.1.2 語義錯誤
9.1.3 邏輯錯誤
9.1.4 注釋錯誤
9.1.5 運行時錯誤
9.2 PHP程序調(diào)試策略
9.2.1 PHP的錯誤級別
9.2.2 打開PHP的錯誤報告
9.2.3 使用print進行程序
調(diào)試
9.3 使用PHPEclipse進行PHP
程序調(diào)試
9.3.1 使用Eclipse編寫
PHP程序的好處
9.3.2 PHPEclipse的安裝與
啟動
9.3.3 PHPEclipse的使用
9.3.4 PHPEclipse的語法
錯誤強調(diào)功能
9.3.5 PHPEclipse的調(diào)試
界面
9.3.6 使用PHPEclipse調(diào)試
PHP代碼的常見問題
9.4 錯誤的處理
9.4.1 錯誤的隱藏
9.4.2 錯誤信息的定制
9.4.3 超時錯誤的處理
9.5 小結(jié)
第10章 PHP中的異常處理
10.1 異常處理的原理
10.2 PHP中的異常處理
10.2.1 異常類Exception
10.2.2 異常拋出關(guān)鍵字
throw
10.2.3 異常捕獲語句try-
catch
10.2.4 異常處理函數(shù)設(shè)置
set_exception_handler
10.2.5 完整的異常信息
10.3 擴展的異常處理類
10.4 異常的傳遞與重擲
10.5 小結(jié)
第11章 PHP與表單
11.1 HTML表單簡介
11.1.1 表單標簽form
11.1.2 輸入標簽input與
文本框
11.1.3 按鈕
11.1.4 單選按鈕與復(fù)選框
11.1.5 多行文本域標簽
textarea
11.1.6 下拉框與列表框標簽
select
11.2 表單數(shù)據(jù)的接收
11.2.1 GET方法
11.2.2 POST方法
11.3 常用表單數(shù)據(jù)的驗證方法
11.3.1 姓名驗證
11.3.2 日期驗證
11.3.3 E-mail地址驗證
11.3.4 密碼字段驗證
11.3.5 改進的用戶信息
輸入程序
11.4 URL編碼解碼函數(shù)
11.4.1 編碼字符串urlencode
11.4.2 解碼字符串urldecode
11.5 小結(jié)
第12章 PHP與JavaScript
交互
12.1 JavaScript簡介
12.2 JavaScript的數(shù)據(jù)類型
12.3 JavaScript程序設(shè)計基礎(chǔ)
12.3.1 在HTML中嵌入
JavaScript
12.3.2 變量
12.3.3 注釋
12.3.4 函數(shù)的定義與調(diào)用
12.3.5 條件語句
12.3.6 循環(huán)語句
12.3.7 對象
12.3.8 事件
12.4 PHP動態(tài)生成JavaScript
代碼
12.4.1 多行輸出
12.4.2 單行輸出
12.4.3 PHP動態(tài)生成
JavaScript實例
進度條
12.5 JavaScript中調(diào)用PHP
程序
12.5.1 頁面的跳轉(zhuǎn)
12.5.2 隱性調(diào)用PHP程序
12.6 JavaScript和PHP綜合實
例表單驗證
12.6.1 表單設(shè)計
12.6.2 JavaScript代碼設(shè)計
12.6.3 PHP代碼設(shè)計
12.6.4 代碼的運行
12.7 小結(jié)
第13章 關(guān)系型數(shù)據(jù)庫的基礎(chǔ)
知識
13.1 關(guān)系型數(shù)據(jù)庫與關(guān)系型數(shù)
據(jù)庫系統(tǒng)的介紹
13.2 關(guān)系型數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)
與運行過程
13.2.1 關(guān)系型數(shù)據(jù)庫系統(tǒng)
的層次結(jié)構(gòu)
13.2.2 關(guān)系型數(shù)據(jù)庫系統(tǒng)
的運行過程
13.3 常用關(guān)系型數(shù)據(jù)庫的介紹
13.4 SQL語言簡介
13.5 常見數(shù)據(jù)庫設(shè)計問題
13.6 關(guān)系型數(shù)據(jù)庫的設(shè)計原則
13.6.1 第一范式(1NF)
13.6.2 第二范式(2NF)
13.6.3 第三范式(3NF)
13.7 小結(jié)
第14章 MySQL的安裝與
操作
14.1 MySQL數(shù)據(jù)庫介紹
14.2 安裝與配置
14.2.1 下載MySQL
14.2.2 MySQL的安裝
14.2.3 MySQL的配置
14.2.4 MySQL的啟動與
關(guān)閉
14.3 如何創(chuàng)建一個數(shù)據(jù)庫與表
14.3.1 登錄與退出MySQL
命令行管理模式
14.3.2 MySQL的數(shù)據(jù)庫
操作
14.3.3 表的創(chuàng)建
14.4 數(shù)據(jù)類型介紹
14.5 索引與唯一值
14.6 數(shù)據(jù)的操作
14.6.1 表的修改
14.6.2 表的刪除
14.6.3 數(shù)據(jù)的查詢
14.6.4 數(shù)據(jù)的插入
14.6.5 數(shù)據(jù)的更新
14.6.6 數(shù)據(jù)的刪除
14.7 小結(jié)
第15章 MySQL與PHP的
應(yīng)用
15.1 PHP結(jié)合數(shù)據(jù)庫應(yīng)用的
優(yōu)勢
15.2 Web數(shù)據(jù)庫的工作原理
15.3 使用PHP操作MySQL
數(shù)據(jù)庫
15.3.1 數(shù)據(jù)庫服務(wù)器的
連接與斷開
15.3.2 選擇數(shù)據(jù)庫
15.3.3 執(zhí)行SQL語句
15.3.4 獲得查詢結(jié)果集
的記錄數(shù)
15.3.5 獲得結(jié)果集的某
一條記錄
15.3.6 逐行獲取結(jié)果集的
每條記錄
15.3.7 結(jié)果集的分頁
15.3.8 用戶動態(tài)添加記錄
15.3.9 用戶動態(tài)更新記錄
15.3.10 用戶動態(tài)刪除記錄
15.4 使用PHP獲取MySQL
數(shù)據(jù)庫的信息
15.4.1 獲取數(shù)據(jù)庫的信息
15.4.2 獲取表的信息
15.4.3 獲取列的數(shù)目
15.4.4 獲取列的名稱
15.4.5 獲取列的數(shù)據(jù)類型
15.4.6 獲取列的長度
15.4.7 獲取列的標志
15.4.8 查看表中各列屬性
的應(yīng)用實例
15.5 常見問題與解決方案
15.6 小結(jié)
第16章 數(shù)據(jù)庫中的程序
邏輯
16.1 數(shù)據(jù)庫程序邏輯與PHP
程序邏輯的分體設(shè)計原則
16.2 數(shù)據(jù)庫程序邏輯與數(shù)據(jù)的
關(guān)系
16.3 存儲過程的設(shè)計
16.3.1 定界符重定義
16.3.2 存儲過程的創(chuàng)建與
調(diào)用
16.3.3 存儲過程的參數(shù)
16.3.4 復(fù)合語句
16.3.5 變量
16.3.6 條件語句
16.3.7 循環(huán)語句
16.3.8 游標
1
PHP是一種應(yīng)用廣泛的Web應(yīng)用程序開發(fā)平臺。相比ASP,PHP更專業(yè)一些,同時在開發(fā)效率、靈活性、安全性、性能方面比ASP技術(shù)更強。開源的PHP經(jīng)過多年發(fā)展, PHP5開始增強的企業(yè)特性,使PHP更廣泛地被應(yīng)用于大型網(wǎng)站與系統(tǒng)的建設(shè),使PHP不再局限于個人小型網(wǎng)站的使用。
本書假設(shè)讀者的開發(fā)基礎(chǔ)為零,首先從搭建PHP的運行和開發(fā)環(huán)境、創(chuàng)建第一個Web應(yīng)用程序的實用技術(shù)出發(fā),詳細介紹了PHP的編程基礎(chǔ)知識、常用技巧以及表單等基本W(wǎng)eb元素的應(yīng)用。然后以MySQL數(shù)據(jù)庫為主,詳細介紹了PHP與數(shù)據(jù)庫的各種操作方法,并對觸發(fā)器和存儲過程的編寫方法進行了詳細的介紹,為后續(xù)的應(yīng)用程序開發(fā)奠定了堅實的基礎(chǔ)。本書具備以下特色:
(1)實例豐富。書中所有的知識點都附帶了可以運行的PHP代碼,并包含了詳細的注釋。在代碼的基礎(chǔ)上學習,可以為今后的應(yīng)用打下堅實的基礎(chǔ)。
(2)細節(jié)翔實。本書對PHP的各方面知識做了全面的介紹,包括如何配置安裝環(huán)境、基本語法以及與數(shù)據(jù)庫的連接操作。
(3)兼顧實際開發(fā)。本書對PHP與其他網(wǎng)頁元素諸如表單、文件、Cookie等做了很詳細的介紹,還使用了幾個完整的實例綜合介紹了PHP的實際應(yīng)用。這些極具代表性的實例對讀者的實際應(yīng)用、畢業(yè)設(shè)計等都具有指導(dǎo)作用。
根據(jù)大多數(shù)開發(fā)人員的學習經(jīng)驗,學習PHP,首先要學習其基礎(chǔ)知識與相關(guān)的數(shù)據(jù)庫操作,而擴展庫和其他相關(guān)知識并不是PHP的核心功能,可以在需要的時候進行學習。但是,掌握了這些知識,可以更好地領(lǐng)悟PHP的精髓。本書也正是按照上面的學習流程進行講解的,由易到難、由初級到高級,逐步將讀者從一名PHP的初學者轉(zhuǎn)變成一名精通PHP的程序開發(fā)人員。對于初學者,本書有以下學習建議,供讀者參考。
(1)多閱讀源代碼。網(wǎng)上的很多源代碼的設(shè)計思想與編程方法有很好的利用價值,在掌握了一定PHP基礎(chǔ)知識后,閱讀一些優(yōu)秀的代碼,可以很快地提高自身的水平。
(2)多練習編寫源代碼。本書提供了大量的范例,讀者在閱讀后根據(jù)自己的理解進行編寫和調(diào)試,可以獲得比單純閱讀更多的收獲。
(3)養(yǎng)成良好的編程習慣。例如,在代碼中適當?shù)奈恢米⑨尅⒋a縮進、語句不能過長等。
如果在學習的過程中遇到問題,及時提問可以很快獲得答案。下面是一些常見的PHP網(wǎng)站或論壇,很多問題都可以從下面的網(wǎng)站中獲得答案。
http://www.php.net/:PHP的官方網(wǎng)站,發(fā)布PHP的最新版本和所有的技術(shù)手冊。
http://www.phpx.com/:中國PHP聯(lián)盟,包含很多PHP方面的教程、文章和代碼等。
http://www.phpe.com/:超越PHP網(wǎng)站,是以討論PHP技術(shù)及教學為主的技術(shù)站點,該網(wǎng)站的一大特色就是其源代碼也是公開的。
http://www.phpv.com/:PHP5研究室,主要從事PHP5的研究,該網(wǎng)站提供了很多PHP5方面的軟件及學習資料。
http://www.phpchina.cn/:PHP China,是面向PHP使用和愛好者以及與PHP有關(guān)的單位與個人自愿參加的組織。該網(wǎng)站主要進行PHP的技術(shù)性討論以及發(fā)布PHP的最新動態(tài)等。
http://community.csdn.net/:CSDN社區(qū),CSDN是國內(nèi)知名的計算機技術(shù)討論社區(qū)。其中的PHP討論版提供了很多很好的PHP技術(shù)資料。
在學習PHP的過程中,多實踐是學習的關(guān)鍵。邊閱讀邊進行代碼調(diào)試可以有效地掌握PHP的知識點,并且及時發(fā)現(xiàn)學習中的難點和重點。
本書適合以下的讀者:
本科/高職/中職學生
網(wǎng)頁專業(yè)設(shè)計制作人員
網(wǎng)頁制作愛好者
社會培訓(xùn)班學生
畢業(yè)設(shè)計的學生
本書由吉林工程技術(shù)師范學院的馬述清、郭天嬌、馬玉萍編寫,其中,馬述清編寫了第1~7章,郭天嬌編寫了第8~13章,馬玉萍編寫了第14~18章。另外,張增強、雷鳳、劉桂珍、王凱迪、張昆、趙桂芹、鮑潔、張友、李亞偉、王小龍和張金霞等也參與了本書的部分代碼編寫、資料收集、校對、測試等工作。本書內(nèi)容翔實,結(jié)構(gòu)緊湊,覆蓋知識面廣泛。由于編寫時間較為倉促,書中難免會有疏漏和不足之處,懇請廣大讀者提出寶貴意見,以便我們在下一個版本中修訂改進。
編 者