php基本語法手冊
Ⅰ php基礎知識點
php基礎知識點
PHP是一種非常流行的開源伺服器端腳本語言,下面我整理了php基礎知識點,希望對大家有幫助!
定義和用法
strrev() 函數反轉字元串。
語法
strrev(string)
參數 描述
string 必需。規定要反轉的字元串。
echo和print都可以做輸出,不同的是,echo不是函數,沒有返回值,而print是一個函數有返回值,所以相對而言如果只是輸出 echo 會更快,而print_r通常用於列印變數的相關信息,通常在調試中使用。
print 是列印字元串
print_r 則是列印復合類型 如數組 對象
$arr = array('a','b','c');
foreach($arr as &$v){ }
print_r($arr);
結果:
Array ( [0] => a [1] => b [2] => c )
foreach($arr as $v){ }
print_r($arr);
結果:
Array ( [0] => a [1] => b [2] => b )
HTTP請求
請求方法(所有方法全為大寫)有多種,各個方法的解釋如下:
GET 請求獲取Request-URI所標識的資源
POST 在Request-URI所標識的資源後附加新的數據
HEAD 請求獲取由Request-URI所標識的資源的響應消息報頭
PUT 請求伺服器存儲一個資源,並用Request-URI作為其標識
DELETE 請求伺服器刪除Request-URI所標識的資源
TRACE 請求伺服器回送收到的請求信息,主要用於測試或診斷
CONNECT 保留將來使用
OPTIONS 請求查詢伺服器的性能,或者查詢與資源相關的選項和需求
HTTP響應也是由三個部分組成,分別是:狀態行、消息報頭、響應正文
1、狀態行格式如下:
HTTP-Version Status-Code Reason-Phrase CRLF
其中,HTTP-Version表示伺服器HTTP協議的版本;Status-Code表示伺服器發回的響應狀態代碼;Reason-Phrase表示狀態代碼的`文本描述。
狀態代碼有三位數字組成,第一個數字定義了響應的類別,且有五種可能取值:
1xx:指示信息--表示請求已接收,繼續處理
2xx:成功--表示請求已被成功接收、理解、接受
3xx:重定向--要完成請求必須進行更進一步的操作
4xx:客戶端錯誤--請求有語法錯誤或請求無法實現
5xx:伺服器端錯誤--伺服器未能實現合法的請求
常見狀態代碼、狀態描述、說明:
200 OK //客戶端請求成功
400 Bad Request //客戶端請求有語法錯誤,不能被伺服器所理解
401 Unauthorized //請求未經授權,這個狀態代碼必須和WWW-Authenticate報頭域一起使用
403 Forbidden //伺服器收到請求,但是拒絕提供服務
404 Not Found //請求資源不存在,eg:輸入了錯誤的URL
500 Internal Server Error //伺服器發生不可預期的錯誤
503 Server Unavailable //伺服器當前不能處理客戶端的請求,一段時間後可能恢復正常
eg:HTTP/1.1 200 OK (CRLF)
2、響應報頭後述
3、響應正文就是伺服器返回的資源的內容
Ⅱ PHP學習什麼內容
學習PHP基本語法。
1.學習hello,world,每個人的程序生涯好像都是從這句話開始的。
2嵌入方法,程序注釋的學習
3常量與變數的學習
4。基本的運算符號如:算術運算,字元串運算,賦值運算,邏輯運算等。
5 PHP的流程式控制制,if..else 循環;do..while;for 循環等
6 函數和類的學習。
Ⅲ PHP學習手冊的目 錄
第一篇 基礎篇
第1章 了解PHP 18
1.1 什麼是PHP 19
1.2 選擇PHP的理由 19
1.3 如何學好編程 22
1.4 准備PHP的開發條件 24
1.4.1 下載PHP及相關軟體 24
1.4.2 代碼編輯工具 24
1.4.3 下載PHP用戶手冊 26
1.5 本章小結 26
第2章 准備開發PHP的條件 27
2.1 AppServ—Windows版PHP集成化安裝包 28
2.1.1 用AppServ搭建PHP開發環境 28
2.1.2 測試AppServ是否安裝成功 30
2.2 XAMPP—Linux版PHP集成化安裝包 31
2.2.1 用XAMPP搭建PHP開發環境 32
2.2.2 在Linux操作系統下啟動、停止XAMPP 33
2.2.3 設置Linux版XAMPP中Mysql資料庫root用戶的密碼 33
2.2.4 在Linux操作系統下編寫第一個PHP程序 33
2.3 PHP開發環境的關鍵配置信息 34
2.3.1 Apache伺服器的基本配置 34
2.3.2 PHP.INI文件的基本配置 35
2.4 解決PHP的常見配置問題 36
2.4.1 解決Apache伺服器埠沖突 36
2.4.2 更改Apache伺服器
默認存儲的文件路徑 36
2.4.3 在PHP.INI文件中更改上傳文件的大小 37
2.4.4 增加PHP擴展模塊 37
2.4.5 檢測PHP是否支持MySQL資料庫 38
2.5 Dreamweaver開發工具 38
2.5.1 情景應用一——Dreamweaver中編碼格式的選擇 38
2.5.2 情景應用二——Dreamweaver創建表格 39
2.5.3 情景應用三——Dreamweaver創建表單 43
2.5.4 情景應用四——Dreamweaver創建站點 45
2.5.5 情景應用五——Dreamweaver創建第一個PHP程序 46
2.6 本章小結 47
第3章 了解Web頁面的設計 48
3.1 XHTML基礎 49
3.1.1 XHTML語言的語法 49
3.1.2 XHTML文件的結構 51
3.1.3 編輯文字版面 53
3.1.4 插入圖像與鏈接 55
3.1.5 編寫XHTML表格 57
3.1.6 設計XHTML表單 58
3.1.7 情景應用一——編寫用戶注冊信息頁 61
3.1.8 情景應用二:文件域上傳文件 62
3.2 CSS樣式應用 63
3.2.1 將CSS樣式嵌入到HTML中 63
3.2.2 CSS選擇符 65
3.2.3 常見的CSS樣式屬性 67
3.2.4 情景應用——打造經典的導航欄 72
3.3 設計頁面布局 74
3.3.1 <div>和<span>標記 74
3.3.2 區塊模型 74
3.3.3 區塊浮動 75
3.3.4 情景應用——設置一行兩列浮動布局 77
3.4 實戰練習 78
3.4.1 CSS+DIV設計網站首頁 78
3.4.2 DIV標簽設計論壇後台管理頁面 79
3.5 本章小結 81
第4章 PHP開發基礎 82
4.1 PHP的工作原理 83
4.2 學習運用代碼注釋 83
4.2.1 使用PHP注釋 84
4.2.2 使用HTML注釋 84
4.2.3 有效使用注釋 85
4.3 PHP的常量應用 85
4.3.1 聲明和使用常量 85
4.3.2 預定義常量 87
4.4 PHP的變數應用 88
4.4.1 理解變數 88
4.4.2 聲明變數 88
4.4.3 變數作用域 89
4.4.4 可變變數 91
4.5 PHP的數據類型 92
4.5.1 標量數據類型 92
4.5.2 復合數據類型 96
4.5.3 特殊數據類型 97
4.5.4 轉換數據類型 98
4.5.5 檢測數據類型 100
4.6 PHP的運算符 101
4.6.1 算術運算符 101
4.6.2 字元串運算符 102
4.6.3 賦值運算符 102
4.6.4 位運算符 103
4.6.5 遞增或遞減運算符 103
4.6.6 邏輯運算符 104
4.6.7 比較運算符 105
4.6.8 三元運算符 105
4.6.9 運算符的使用規則 106
4.7 PHP的自定義函數 107
4.7.1 定義和調用函數 108
4.7.2 在函數間傳遞參數 109
4.7.3 函數的返回值 110
4.8 實戰練習 111
4.8.1 網站中最新動態模塊的中文字元串截取 111
4.8.2 論壇發布內容模塊中對內容的格式化輸出 112
4.9 本章小結 113
第5章 PHP流程式控制制語句 115
5.1 程序三種控制結構 116
5.1.1 順序結構 116
5.1.2 選擇(分支)結構 116
5.1.3 循環結構 116
5.2 條件控制語句 117
5.2.1 if條件控制語句 117
5.2.2 switch多分支語句 119
5.2.3 情景應用一——if語句判斷美女徵婚條件 121
5.2.4 情景應用二——switch網頁框架 122
5.3 循環控制語句 123
5.3.1 while循環語句 124
5.3.2 do...while循環語句 124
5.3.3 for循環語句 125
5.3.4 foreach循環語句 127
5.3.5 情景應用一——while語句循環讀取資料庫中數據 128
5.3.6 情景應用二——for循環語句開發一個乘法口訣表 129
5.4 跳轉語句 130
5.4.1 break跳轉語句 130
5.4.2 continue跳轉語句 131
5.4.3 return跳轉語句 132
5.5 包含語句 133
5.5.1 include()語句 133
5.5.2 require()語句 134
5.5.3 include_once()語句 135
5.5.4 require_once()語句 135
5.5.5 include()語句和require()語句的區別 136
5.5.6 include_once()語句和require_once()語句的區別 138
5.6 實戰練習 138
5.6.1 刪除資料庫中指定的數據表 138
5.6.2 for循環語句實現多圖片上傳 139
5.7 本章小結 140
第6章 字元串操作 141
6.1 初識字元串 142
6.2 轉義、還原字元串 142
6.3 截取字元串 143
6.4 分割、合成字元串 145
6.5 替換字元串 146
6.5.1 str_ireplace()函數 146
6.5.2 substr_replace()函數 148
6.6 檢索字元串 148
6.6.1 strstr()函數 148
6.6.2 substr_count()函數 149
6.7 去掉字元串首尾空格和特殊字元 150
6.7.1 ltrim()函數 150
6.7.2 rtrim()函數 151
6.7.3 trim()函數 152
6.8 字元串與HTML轉換 152
6.9 情景應用 154
6.9.1 超長文本的分頁輸出 154
6.9.2 查詢關鍵字描紅 155
6.9.3 購物車中數據的讀取 156
6.10 實戰練習 157
6.10.1 PHP 5新型字元串輸出XML數據信息 157
6.10.2 圖像驗證碼的相關操作 158
6.11 本章小結 159
第7章 正則表達式 160
7.1 什麼是正則表達式 161
7.2 正則表達式的語法規則 162
7.2.1 行定位符(^和$) 162
7.2.2 單詞定界符(、B) 162
7.2.3 字元類([ ]) 163
7.2.4 選擇字元(|) 163
7.2.5 連字元(-) 163
7.2.6 排除字元([^]) 164
7.2.7 限定符(? * + {n,m}) 164
7.2.8 點號字元(.) 164
7.2.9 轉義字元() 165
7.2.10 反斜線() 165
7.2.11 括弧字元(()) 166
7.2.12 情景應用一——整合實用的正則表達式 166
7.2.13 情景應用二——調用正則表達式驗證中文 168
7.3 PCRE兼容正則表達式函數 169
7.3.1 字元串的匹配與查找 169
7.3.2 情景應用一——應用正則表達式匹配電話號碼格式 170
7.3.3 字元串的替換 172
7.3.4 情景應用二——應用正則表達式實現UBB使用幫助 173
7.3.5 字元串的分割 173
7.4 實戰練習 174
7.4.1 正則表達式驗證用戶
7.4.1 注冊信息的合理性 174
7.4.2 正則表達式驗證提交的
7.4.1 購買數量是否是正整數 176
7.5 本章小結 177
第8章 初探數組 178
8.1 數組概述 179
8.2 數組類型 179
8.3 聲明數組 180
8.3.1 用戶創建數組 180
8.3.2 函數創建數組 181
8.3.3 創建二維數組 181
8.4 遍歷、輸出數組 182
8.4.1 遍歷數組 183
8.4.2 輸出數組元素 184
8.5 PHP的數組函數 185
8.5.1 統計數組元素個數 185
8.5.2 向數組中添加元素 185
8.5.3 獲取數組中最後一個元素 186
8.5.4 刪除數組中重復元素 186
8.5.5 獲取數組中指定元素的鍵名 186
8.5.6 字元串與數組的轉換 187
8.5.7 情景應用——讀取網上調查中的數據 188
8.6 PHP的全局數組 189
8.6.1 $_SERVER[ ]全局數組 189
8.6.2 $_GET[ ]和$_POST[ ]全局數組 190
8.6.3 $_COOKIE全局數組 190
8.6.4 $_ENV[ ]全局數組 191
8.6.5 $_REQUEST[ ]全局數組 191
8.6.6 $_SESSION[ ]全局數組 191
8.6.7 $_FILES[ ]全局數組 191
8.6.8 情景應用——$_FILES[ ]全局數組在文件上傳中的應用 191
8.7 實戰練習 193
8.7.1 生成在線考試題 193
8.7.2 通過獲取客戶端IP地址限制投票次數 193
8.8 本章小結 195
第9章 日期與時間 196
9.1 PHP的時間觀念 197
9.1.1 在PHP.INI文件中設置時區 197
9.1.2 通過date_default_timezone_set函數設置時區 197
9.2 UNIX時間戳 198
9.2.1 獲取任意日期、時間的時間戳 198
9.2.2 獲取當前時間戳 199
9.2.3 日期、時間轉換為UNIX時間戳 199
9.3 日期和時間處理 201
9.3.1 格式化日期和時間 201
9.3.2 獲取日期和時間信息 202
9.3.3 檢驗日期和時間的有效性 203
9.4 情景應用 204
9.4.1 獲取系統當前時間和時間戳 204
9.4.2 比較兩個時間的大小 204
9.4.3 倒計時 205
9.5 實戰練習 205
9.5.1 計算程序的運行時間 205
9.5.2 網頁鬧鍾 206
9.6 本章小結 207
第二篇 核心篇
第10章 文件和目錄處理技術 210
10.1 基本的文件處理技術 211
10.1.1 打開一個文件 211
10.1.2 讀取文件內容 214
10.1.3 向文件中寫入數據 218
10.1.4 關閉文件指針 220
10.2 目錄操作技術 220
10.2.1 打開指定目錄 220
10.2.2 讀取目錄結構 221
10.2.3 關閉目錄指針 222
10.3 文件的上傳技術 223
10.3.1 開啟文件上傳功能 223
10.3.2 全局變數$_FILES應用 224
10.3.3 將上傳文件移動到指定目錄 225
10.3.4 文件下載技術 226
10.4 情景應用 227
10.4.1 通過文本文件統計網站訪問量 227
10.4.2 規范化的文件上傳 229
10.5 實戰練習 231
10.5.1 從文本文件中讀取注冊服務條款 231
10.5.2 規范化的多文件上傳 232
10.6 本章小結 233
第11章 圖形圖像處理技術 234
11.1 了解GD2函數庫 235
11.2 設置GD2函數庫 235
11.3 學習常用的圖像處理技術 235
11.3.1 創建畫布 236
11.3.2 顏色處理 237
11.3.3 繪制文字 237
11.3.4 輸出圖像 239
11.3.5 銷毀圖像 240
11.3.6 情景應用一——在照片上書寫文字 240
11.3.7 情景應用二——GD2函數生成圖像驗證碼 241
11.4 運用Jpgraph類庫繪制圖像 242
11.4.1 Jpgraph類庫簡介 242
11.4.2 Jpgraph的安裝 242
11.4.3 情景應用一——柱狀圖展示2010年第一季度編程詞典銷量 243
11.4.4 情景應用二——折線圖分析2010年公司銷售額 245
11.4.5 情景應用三——多餅形圖分析2010年圖書銷量 246
11.5 實戰練習 248
11.5.1 GD2函數生成帶有干擾線的圖像驗證碼 248
11.5.2 Jpgraph創建折線圖分析圖書銷售走勢 249
11.5.3 Jpgraph創建3D餅形圖展示部門業績比較 250
11.6 本章小結 251
第12章 Cookie和會話控制 252
12.1 會話的操作 253
12.1.1 創建會話 253
12.1.2 配置PHP的會話 255
12.2 會話的高級應用 259
12.2.1 SESSION臨時文件 259
12.2.2 SESSION緩存 259
12.2.3 SESSION資料庫存儲 261
12.3 Cookie的操作 263
12.3.1 設置Cookie 264
12.3.2 訪問Cookie 265
12.3.3 刪除Cookie 266
12.4 情景應用 267
12.4.1 登錄驗證 267
12.4.2 Cookie自動登錄 269
12.5 實戰練習 270
12.5.1 防止頁面刷新 270
12.5.2 控制客戶端Cookie 271
12.6 本章小結 272
第13章 面向對象 273
13.1 一切皆是對象 274
13.1.1 什麼是類 274
13.1.2 對象的由來 274
13.1.3 面向對象的特點 275
13.2 類的聲明 275
13.2.1 類的定義 275
13.2.2 成員屬性 276
13.2.3 成員方法 277
13.3 類的實例化 277
13.3.1 創建對象 278
13.3.2 訪問類中成員 278
13.3.3 特殊的訪問方法——「$this」和「::」 279
13.3.4 構造方法和析構方法 280
13.4 面向對象的封裝特性 281
13.4.1 public(公共成員) 282
13.4.2 private(私有成員) 282
13.4.3 protected(保護成員) 283
13.5 面向對象的繼承特性 283
13.5.1 類的繼承——extends關鍵字 283
13.5.2 類的繼承——parent::關鍵字 284
13.5.3 覆蓋父類方法 285
13.6 抽象類和介面 286
13.6.1 抽象類 286
13.6.2 介面 287
13.7 面向對象的多態性 289
13.7.1 通過繼承實現多態 289
13.7.2 通過介面實現多態 290
13.8 面向對象的關鍵字 290
13.8.1 final關鍵字 291
13.8.2 static關鍵字——聲明靜態類成員 291
13.8.3 clone關鍵字——克隆對象 292
13.8.4 對象比較 293
13.8.5 instanceof關鍵字——對象類型檢測 293
13.9 面向對象的魔術方法 293
13.9.1 _set()和_get()方法 294
13.9.2 _isset()和_unset()方法 294
13.9.3 _call()方法 294
12.9.4 _toString()方法 295
13.9.5 _autoload()方法 295
13.9.6 情景應用一——封裝一個資料庫連接類 296
13.9.7 情景應用二——封裝一個資料庫操作類 297
13.10 實戰練習 298
13.10.1 分頁類 299
13.10.2 萬用表格 300
13.11 本章小結 301
第14章 MySQL資料庫設計 302
14.1 MySQL概述 303
14.1.1 MySQL的特點 303
14.1.2 SQL和MySQL 303
14.2 MySQL伺服器的啟動和關閉 304
14.2.1 啟動MySQL伺服器 304
14.2.2 連接MySQL伺服器 305
14.2.3 關閉MySQL伺服器 305
14.3 操作MySQL資料庫 306
14.3.1 創建新資料庫 306
14.3.2 選擇指定資料庫 306
14.3.3 刪除指定資料庫 306
14.4 操作MySQL數據表 307
14.4.1 創建一個表 307
14.4.2 查看數據表結構 308
14.4.3 修改數據表結構 309
14.4.4 重命名數據表 310
14.4.5 刪除指定數據表 310
14.5 操作MySQL數據 311
14.5.1 向數據表中添加數據(INSERT) 311
14.5.2 更新數據表中數據(UPDATE) 312
14.5.3 刪除數據表中數據(DELETE) 312
14.5.4 查詢數據表中數據 313
14.5.5 情景應用一——數據排序 316
14.5.6 情景應用二——limit控制輸出數據的開始位置和記錄數 316
14.6 MySQL數據類型 316
14.6.1 數字類型 317
14.6.2 字元串類型 317
14.6.3 日期和時間數據類型 319
14.7 用phpMyAdmin管理MySQL資料庫 319
14.7.1 管理資料庫 319
14.7.2 管理數據表 320
14.7.3 管理數據記錄 322
14.7.4 導入/導出數據 324
14.8 實戰練習 325
14.8.1 批量添加記錄(LOAD DATA和MYSQLIMPORT) 325
14.8.2 在phpMyAdmin中重置MySQL伺服器登錄密碼 326
14.9 本章小結 326
第15章 資料庫編程技術 327
15.1 PHP操作MySQL資料庫的步驟 328
15.2 PHP操作MySQL資料庫的方法 329
15.2.1 mysql_connect()函數連接MySQL伺服器 329
15.2.2 mysql_select_db()函數選擇MySQL資料庫 330
15.2.3 mysql_query()函數執行SQL語句 330
15.2.4 mysql_fetch_array()函數將結果集返回到數組中 331
15.2.5 mysql_fetch_row()函數從結果集中獲取一行作為枚舉數組 333
15.2.6 mysql_num_rows()函數獲取查詢結果集中的記錄數 333
15.3 管理MySQL資料庫中的數據 334
15.3.1 向資料庫中添加數據 334
15.3.2 編輯資料庫數據 335
15.3.3 從資料庫中刪除數據 336
15.3.4 批量數據操作 336
15.4 情景應用 337
15.4.1 通用查詢 337
15.4.2 分組統計 338
15.4.3 對查詢結果分頁顯示 339
15.4.4 站內搜索 340
15.5 實戰練習 341
15.5.1 對查詢結果進行跳轉分頁顯示 341
15.5.2 高級查詢 341
15.6 本章小結 342
第三篇 高級篇
第16章 PDO資料庫抽象層 346
16.1 什麼是PDO 347
16.1.1 PDO概述 347
16.1.2 PDO特點 347
16.1.3 安裝PDO 347
16.2 PDO連接資料庫 348
16.2.1 PDO構造函數 348
16.2.2 情景應用一——連接MySQL資料庫 348
16.2.3 情景應用二——連接MS SQL Server資料庫 349
16.2.4 情景應用三——連接Oracle資料庫 350
16.3 PDO中執行SQL語句 350
16.3.1 exec()方法 351
16.3.2 query()方法 351
16.3.3 預處理語句——prepare()和execute() 352
16.3.4 情景應用一——通過PDO向資料庫中添加數據 353
16.3.5 情景應用二——通過PDO更新資料庫中數據 354
16.4 PDO中獲取結果集 355
16.4.1 fetch()方法 355
16.4.2 fetchAll()方法 357
16.4.3 fetchColumn()方法 358
16.5 PDO中捕獲SQL語句中的錯誤 359
16.5.1 使用默認模式——PDO::ERRMODE_SILENT 359
16.5.2 使用警告模式——PDO::ERRMODE_WARNING 360
16.5.3 使用異常模式——PDO::ERRMODE_EXCEPTION 361
16.6 PDO中錯誤處理 362
16.6.1 errorCode()方法 362
16.6.2 errorInfo()方法 363
16.7 PDO中事務處理 364
16.8 PDO中存儲過程 366
16.9 實戰練習 367
16.9.1 PDO讀取MS SQL Server資料庫中數據 367
16.9.2 PDO讀取Oracle資料庫中數據 368
16.10 本章小結 369
第17章 ADODB資料庫抽象層 370
17.1 ADODB概述 371
17.1.1 ADODB的優點與缺點 371
17.1.2 ADODB的安裝與操作流程 371
17.2 連接資料庫系統和資料庫 372
17.2.1 連接資料庫系統——ADONewConnection()函數 372
17.2.2 資料庫持久化連接——PConnect()函數 372
17.2.3 資料庫非持久化連接——Connect()函數 372
17.2.4 情景應用一——ADODB連接MySQL資料庫 373
17.2.5 情景應用二——ADODB連接Access資料庫 374
17.2.6 情景應用三——ADODB連接MS SQL Server資料庫 374
17.2.7 情景應用四——ADODB連接Oracle資料庫 375
17.3 通過公共變數控制數據的存取方式 376
17.4 ADODB執行SQL語句 377
17.4.1 執行SQL語句——execute()函數 377
17.4.2 控制SELECT查詢語句的起始位置——SelectLimit()函數 378
17.4.3 添加、更新數據——GetInsertSQL()、GetUpdateSQL()函數 379
17.4.4 操作SQL語句的其他方法 380
17.5 ADODB控制結果集 380
17.5.1 控制指針的方法 381
17.5.2 控制結果集內容的方法 382
17.5.3 日期格式和數據類型的轉換 383
17.6 ADODB中的分頁 384
17.6.1 ADODB分頁函數 384
17.6.2 一個小巧的分頁函數——ADODB_Pager()函數 385
17.7 ADODB中的錯誤處理 386
17.7.1 ADODB中的錯誤處理函數 386
17.7.2 ADODB中自定義的錯誤處理機制 387
17.7.3 情景應用——通過日誌文件存儲錯誤信息 388
17.8 ADODB中的事務處理 389
17.9 實戰練習 390
17.9.1 封裝ADODB連接資料庫類 390
17.9.2 封裝ADODB操作資料庫類 391
17.9.3 封裝ADODB分頁類 392
17.9.4 通過事務處理機制保證數據轉換的順利完成 393
17.10 本章小結 395
第18章 PHP的字元編碼 396
18.1 了解網頁字元編碼 397
18.1.1 ASCII 字元集 397
18.1.2 ISO 8859 字元集 397
18.1.3 GB2312與GBK編碼 398
18.1.4 Unicode字元集 398
18.1.5 UTF-8編碼 398
18.2 PHP網頁的字元編碼 399
18.2.1 設置編碼格式 399
18.2.2 轉換編碼格式 400
18.2.3 檢測字元串的編碼 402
18.3 PHP開發中的亂碼問題 403
18.3.1 解決頁面中的亂碼問題 403
18.3.2 資料庫中的字元集編碼問題 405
18.3.3 避免截取中文字元串時出現亂碼 406
18.4 PHP區域化設置 407
18.4.1 PHP網頁的區域化 407
18.4.2 使用setlocale()函數設置區域化 408
18.5 實戰練習 409
18.5.1 避免截取超長文本時出現亂碼 409
18.5.2 了解PHP編碼規則 410
18.5.3 了解PHP編碼風格 410
18.6 本章小結 412
第19章 程序調試與錯誤處理 413
19.1 基本調試策略 414
19.2 常見錯誤分析 414
19.2.1 語法錯誤 414
19.2.2 定義錯誤 417
19.2.3 邏輯錯誤 418
19.2.4 運行錯誤 419
19.2.5 環境錯誤 421
19.3 PHP.INI中的錯誤處理機制 422
19.3.1 控制錯誤顯示及顯示方式 423
19.3.2 控制錯誤的級別 423
19.4 程序調試方法 424
19.4.1 應用DIE語句調試 424
19.4.2 應用mysql_error()語句輸出錯誤信息 425
19.4.3 應用try{}catch{}M語句拋出並捕獲異常 425
19.5 錯誤處理技巧 427
19.5.1 隱藏錯誤 427
19.5.2 自定義錯誤頁面 427
19.5.3 延長伺服器執行時間——處理超時錯誤 428
19.6 情景應用 429
19.6.1 如何分析、解決PHP與MySQL連接錯誤 429
19.6.2 解決資料庫亂碼問題 431
19.7 實戰練習 432
19.7.1 封裝屬於自己的異常處理類 432
19.7.2 使用錯誤處理器記錄日誌 433
19.8 本章小結 434
第20章 Smarty模板技術 435
20.1 走進Smarty模板引擎 436
20.1.1 Smarty模板引擎下載 437
20.1.2 Smarty模板引擎安裝 437
20.1.3 Smarty模板引擎配置 437
20.1.4 情景應用一——走進Smarty模板引擎 439
20.1.5 情景應用二——封裝Smarty模板的配置方法 440
20.2 Smarty模板設計——靜態頁處理 442
20.2.1 基本語法(注釋、函數和屬性) 442
20.2.2 Smarty模板設計變數 443
20.2.3 變數調節器 444
20.2.4 情景應用一——Smarty模板中日期、時間的格式化輸出 445
20.2.5 情景應用二——通過組合修改器分隔多個變數調節器 445
20.2.6 內建函數(動態文件、模板文件的包含和流程式控制制語句) 446
20.2.7 情景應用三——Smarty模板創建網頁框架 448
20.2.8 情景應用四——section語句循環輸出資料庫中的數據 450
20.2.9 自定義函數 451
20.2.10 配置文件 454
20.3 Smarty程序設計——動態文件操作 455
20.3.1 SMARTY_PATH常量 455
20.3.2 Smarty程序設計變數 455
20.3.3 Smarty方法 456
20.3.4 Smarty緩存 456
20.3.5 情景應用——開啟網站注冊頁面的緩存 458
20.4 實戰練習 460
20.4.1 Smarty+ADODB完成數據的分頁輸出 460
20.4.2 Smarty中通過truncate方法截取字元串 461
20.4.3 用Register_Function方法注冊模板函數 462
20.4.4 Smarty模板中的關鍵字描紅 464
20.5 本章小結 464
第四篇 實戰篇
第21章 企業網站開發模板 466
21.1 明日企業網概述 467
21.2 開發背景 467
21.3 需求分析 467
21.4 功能結構 468
21.5 資料庫設計 469
21.5.1 資料庫概念設計 469
21.5.2 創建資料庫及數據表 470
21.6 技術攻關 471
21.6.1 Smarty模板 471
21.6.2 最簡單的網頁框架 473
21.6.3 ADODB類庫 473
21.6.4 封裝分頁類 474
21.7 首頁設計 475
21.7.1 首頁概述 475
21.7.2 首頁技術分析 476
21.7.3 首頁的實現過程 476
21.8 產品展示設計 478
21.8.1 產品展示概述 478
21.8.2 產品展示技術分析 478
21.8.3 產品展示實現過程 479
21.9 後台管理系統設計 480
21.9.1 後台管理系統概述 481
21.9.2 後台管理系統技術分析 481
21.9.3 後台管理系統實現過程 482
21.10 程序調試與錯誤處理 486
21.10.1 SQL語句的返回機制 486
21.10.2 錯誤處理 487
21.11 開發總結 488
附錄 專業術語表 489