第1章 php概述 1
1.1 曆史 1
1.1.1 php 4 2
1.1.2 php 5 3
1.1.3 php 6 4
1.2 一般語言特性 4
1.2.1 實用性 4
1.2.2 強大功能 5
1.2.3 可能性 5
1.2.4 成本 6
1.3 小結 6
第2章 環境配置 7
2.1 安裝的前提條件 7
2.1.1 下載apache 8
2.1.2 下載php 8
2.1.3 獲得文檔 9
2.2 在linux上安裝apache和php 9
2.3 在windows上安裝apache和php 11
2.4 在windows上安裝iis和php 12
2.4.1 安裝iis和php 13
2.4.2 配置fastcgi來管理php進程 13
2.5 測試安裝 14
2.6 配置php 16
2.6.1 在linux上構建時配置php 16
2.6.2 定製windows構建 16
2.7 運行時配置 16
2.7.1 管理php的配置指令 17
2.7.2 php的配置指令 18
2.8 選擇代碼編輯器 29
2.8.1 adobe dreamweaver cs3 29
2.8.2 notepad++ 30
2.8.3 pdt 30
2.8.4 zend studio 30
2.9 選擇web托管服務提供商 31
2.10 小結 32
第3章 php基礎 33
3.1 在web頁麵中嵌入php代碼 33
3.1.1 默認語法 33
3.1.2 短標記 34
3.1.3 腳本 34
3.1.4 asp風格 35
3.1.5 嵌入多個代碼塊 35
3.2 為代碼添加注釋 35
3.2.1 單行c++語法 35
3.2.2 shell語法 36
3.2.3 多行c語法 36
3.3 嚮瀏覽器輸齣數據 36
3.3.1 print()語句 37
3.3.2 printf()語句 38
3.3.3 sprintf() 39
3.4 php支持的數據類型 39
3.4.1 標量數據類型 39
3.4.2 復閤數據類型 40
3.4.3 使用類型強製轉換實現數據類型間的轉換 41
3.4.4 類型自動轉換 42
3.4.5 與類型有關的函數 43
3.4.6 類型標識符函數 43
3.5 標識符 44
3.6 變量 45
3.6.1 變量聲明 45
3.6.2 變量作用域 46
3.6.3 php的超級全局變量 49
3.6.4 變量的變量 52
3.7 常量 53
3.8 錶達式 53
3.8.1 操作數 53
3.8.2 操作符 54
3.9 字符串插入 58
3.9.1 雙引號 58
3.9.2 單引號 59
3.9.3 heredoc 60
3.10 控製結構 60
3.10.1 條件語句 61
3.10.2 循環語句 63
3.10.3 文件包含語句 67
3.11 小結 69
第4章 函數 70
4.1 調用函數 70
4.2 創建函數 71
4.2.1 按值傳遞參數 71
4.2.2 按引用傳遞參數 72
4.2.3 默認參數值 73
4.2.4 從函數返迴值 74
4.2.5 遞歸函數 75
4.3 函數庫 77
4.4 小結 78
第5章 數組 79
5.1 什麼是數組 79
5.2 創建數組 80
5.2.1 用array()創建數組 81
5.2.2 用list()提取數組 81
5.2.3 用預定義的值範圍填充數組 82
5.2.4 測試數組 83
5.3 添加和刪除數組元素 84
5.3.1 在數組頭添加元素 84
5.3.2 在數組尾添加元素 84
5.3.3 從數組頭刪除值 84
5.3.4 從數組尾刪除元素 85
5.4 定位數組元素 85
5.4.1 搜索數組 85
5.4.2 獲取數組鍵 86
5.4.3 獲取數組值 86
5.5 遍曆數組 87
5.5.1 獲取當前數組鍵 87
5.5.2 獲取當前數組值 87
5.5.3 獲取當前數組鍵和值 88
5.5.4 移動數組指針 88
5.5.5 嚮函數傳遞數組值 89
5.6 確定數組的大小和唯一性 90
5.6.1 確定數組的大小 90
5.6.2 統計數組元素齣現的頻度 91
5.6.3 確定唯一的數組元素 91
5.7 數組排序 91
5.7.1 逆置數組元素順序 91
5.7.2 置換數組鍵和值 92
5.7.3 數組排序 92
5.8 閤並、拆分、接閤和分解數組 96
5.8.1 閤並數組 96
5.8.2 遞歸追加數組 97
5.8.3 連接兩個數組 97
5.8.4 拆分數組 97
5.8.5 接閤數組 98
5.8.6 求數組的交集 99
5.8.7 求關聯數組的交集 100
5.8.8 求數組的差集 100
5.8.9 求關聯數組的差集 100
5.9 其他有用的數組函數 101
5.9.1 返迴一組隨機的鍵 101
5.9.2 隨機洗牌數組元素 101
5.10 小結 103
第6章 麵嚮對象的php 104
6.1 oop的好處 104
6.1.1 封裝 104
6.1.2 繼承 105
6.1.3 多態 105
6.2 關鍵的oop概念 106
6.2.1 類 106
6.2.2 對象 107
6.2.3 字段 107
6.2.4 屬性 109
6.2.5 常量 112
6.2.6 方法 112
6.3 構造函數和析構函數 116
6.3.1 構造函數 116
6.3.2 析構函數 118
6.4 靜態類成員 119
6.5 instanceof關鍵字 120
6.6 輔助函數 120
6.7 自動加載對象 122
6.8 小結 122
第7章 高級oop特性 123
7.1 php不支持的高級oop特性 123
7.2 對象剋隆 124
7.2.1 剋隆示例 124
7.2.2 __clone()方法 125
7.3 繼承 126
7.3.1 類繼承 127
7.3.2 繼承和構造函數 128
7.4 接口 130
7.4.1 實現一個接口 131
7.4.2 實現多個接口 132
7.5 抽象類 132
7.6 命名空間介紹 133
7.7 小結 135
第8章 錯誤和異常處理 136
8.1 配置指令 136
8.2 錯誤日誌 138
8.3 異常處理 140
8.3.1 為什麼異常處理很方便 141
8.3.2 php的異常處理實現 142
8.4 小結 146
第9章 字符串和正則錶達式 147
9.1 正則錶達式 147
9.1.1 正則錶達式語法(posix) 147
9.1.2 php的正則錶達式函數(posix擴展) 149
9.1.3 正則錶達式語法(perl風格) 152
9.2 其他字符串函數 158
9.2.1 確定字符串長度 158
9.2.2 比較兩個字符串 158
9.2.3 處理字符串大小寫 160
9.2.4 字符串與html相互轉換 161
9.3 正則錶達式函數的替代函數 165
9.3.1 填充和剔除字符串 171
9.3.2 字符和單詞計數 172
9.4 使用pear:validate_us 174
9.4.1 安裝validate_us 174
9.4.2 使用validate_us 175
9.5 小結 175
第10章 處理文件和操作係統 176
10.1 瞭解文件和目錄 176
10.1.1 解析目錄路徑 176
10.1.2 計算文件、目錄和磁盤大小 178
10.1.3 確定訪問和修改時間 181
10.2 文件處理 182
10.2.1 資源的概念 182
10.2.2 換行 182
10.2.3 識彆文件末尾字符 182
10.2.4 打開和關閉文件 183
10.2.5 讀取文件 184
10.2.6 將字符串寫入文件 189
10.2.7 移動文件指針 190
10.2.8 讀取目錄內容 190
10.3 執行shell命令 191
10.4 係統級程序執行 193
10.4.1 清理輸入 193
10.4.2 php的程序執行函數 194
10.5 小結 196
第11章 pear 197
11.1 流行的pear包 197
11.1.1 預安裝的包 197
11.1.2 安裝程序建議的包 198
11.2 pear的強大功能:數值格式轉換 198
11.3 安裝和更新pear 199
11.3.1 安裝pear 199
11.3.2 pear和托管公司 200
11.3.3 更新pear 200
11.4 使用pear包管理器 201
11.4.1 查看安裝的pear包 201
11.4.2 瞭解pear安裝包的更多信息 201
11.4.3 安裝pear包 202
11.4.4 將包包含到腳本中 203
11.4.5 升級pear包 204
11.4.6 卸載包 204
11.4.7 降級pear包 205
11.5 小結 205
第12章 日期和時間 206
12.1 unix時間戳 206
12.2 php的日期和時間庫 206
12.2.1 驗證日期 207
12.2.2 格式化日期和時間 207
12.2.3 將時間戳轉換為用戶友好的值 210
12.2.4 處理時間戳 211
12.3 日期函數 212
12.3.1 顯示本地化的日期和時間 212
12.3.2 顯示網頁的最新修改日期 215
12.3.3 確定當前月份中的天數 216
12.3.4 確定任意給定月份的天數 216
12.3.5 計算當前日期後x天的日期 216
12.3.6 利用pear:創建日曆 217
12.4 為php 5.1+用戶提供的日期時間改進 219
12.4.1 datetime構造函數簡介 220
12.4.2 格式化日期 220
12.4.3 實例化後設置日期 220
12.4.4 實例化後設置時間 221
12.4.5 修改日期和時間 221
12.5 小結 221
第13章 錶單 222
13.1 php和web錶單 222
13.1.1 簡單示例 223
13.1.2 嚮函數傳遞錶單數據 224
13.1.3 處理多值錶單組件 225
13.2 充分利用pear: html_quickform 226
13.2.1 安裝html_quickform 227
13.2.2 創建一個簡單的錶單 227
13.2.3 使用自動完成 231
13.3 小結 232
第14章 身份驗證 233
14.1 http驗證概念 233
14.2 php驗證 234
14.2.1 驗證變量 234
14.2.2 有用的函數 235
14.3 php驗證方法 236
14.3.1 硬編碼的身份驗證 236
14.3.2 基於文件的身份驗證 236
14.3.3 基於數據庫的身份驗證 238
14.3.4 基於ip的身份驗證 239
14.3.5 利用pear:auth_http 241
14.4 用戶登錄管理 243
14.4.1 用cracklib庫測試密碼易猜性 243
14.4.2 一次性url和密碼恢復 245
14.5 小結 247
第15章 處理文件上傳 248
15.1 通過http協議上傳文件 248
15.2 通過php上傳文件 249
15.2.1 php的文件上傳/資源指令 249
15.2.2 $_files數組 250
15.2.3 php的文件上傳函數 251
15.2.4 上傳錯誤消息 252
15.2.5 一個簡單的示例 252
15.3 利用pear:http_upload 253
15.3.1 安裝http_upload 253
15.3.2 上傳文件 254
15.3.3 瞭解關於上傳文件的更多信息 254
15.3.4 上傳多個文件 255
15.4 小結 256
第16章 網絡 257
16.1 dns、服務器和服務 257
16.1.1 dns 257
16.1.2 服務 261
16.1.3 建立套接字連接 261
16.2 郵件 263
16.2.1 配置指令 263
16.2.2 使用php腳本發送電子郵件 264
16.3 常見網絡任務 268
16.3.1 連接服務器 269
16.3.2 創建端口掃描器 269
16.3.3 創建子網轉換器 270
16.3.4 測試用戶帶寬 272
16.4 小結 273
第17章 php和ldap 274
17.1 在php中使用ldap.. 275
17.1.1 連接到ldap服務器 275
17.1.2 獲取ldap數據 277
17.1.3 統計所獲取的項 280
17.1.4 排序ldap記錄 281
17.1.5 插入ldap數據 281
17.1.6 更新ldap數據 282
17.1.7 刪除ldap數據 283
17.1.8 處理區分名 283
17.1.9 錯誤處理 284
17.2 小結 285
第18章 會話處理器 286
18.1 什麼是會話處理 286
18.2 配置指令 288
18.2.1 管理會話存儲介質 288
18.2.2 設置會話文件路徑 288
18.2.3 自動啓用會話 288
18.2.4 設置會話名稱 289
18.2.5 選擇cookie或url重寫 289
18.2.6 自動進行url重寫 289
18.2.7 設置會話cookie的生存期 289
18.2.8 設置會話cookie的有效url路徑 289
18.2.9 為啓用會話的頁麵設置緩存方嚮 290
18.3 處理會話 291
18.3.1 開始會話 291
18.3.2 銷毀會話 291
18.3.3 設置和獲取會話id 292
18.3.4 創建和刪除會話變量 292
18.3.5 編碼和解碼會話數據 293
18.4 實際的會話處理示例 294
18.4.1 以返迴用戶的身份自動登錄 294
18.4.2 生成最近瀏覽的文檔索引 296
18.5 創建定製會話處理器 297
18.5.1 將定製會話函數加入到php邏輯 298
18.5.2 基於mysql的定製會話處理器 298
18.6 小結 302
第19章 用smarty模闆化 303
19.1 什麼是模闆化引擎 303
19.2 smarty介紹 305
19.3 安裝smarty 305
19.4 使用smarty 306
19.5 smarty的錶現邏輯 308
19.5.1 注釋 308
19.5.2 變量修飾符 308
19.5.3 控製結構 311
19.5.4 語句 315
19.6 創建配置文件 317
19.6.1 config_load 317
19.6.2 引用配置變量 317
19.7 結閤smarty使用css 318
19.8 緩存 319
19.8.1 處理緩存生命期 320
19.8.2 通過is_cached()消除處理開銷 320
19.8.3 為每個模闆創建多個緩存 321
19.8.4 關於緩存的結束語 322
19.9 小結 322
第20章 web服務 323
20.1 為什麼使用web服務 323
20.2 rss 324
20.2.1 理解rss語法 326
20.2.2 magpierss介紹 327
20.3 simplexml 334
20.3.1 加載xml 335
20.3.2 解析xml 336
20.4 soap 339
20.4.1 soap消息介紹 339
20.4.2 php的soap擴展介紹 340
20.5 小結 346
第21章 安全php編程 347
21.1 安全地配置php 347
21.1.1 安全模式 347
21.1.2 其他與安全有關的配置參數 349
21.2 隱藏配置細節 351
21.2.1 隱藏apache 351
21.2.2 隱藏php 351
21.3 隱藏敏感數據 352
21.3.1 隱藏文檔根目錄 353
21.3.2 拒絕訪問某些文件擴展名 353
21.4 清理用戶數據 353
21.4.1 文件刪除 354
21.4.2 跨網站腳本 354
21.4.3 清理用戶輸入:解決方案 355
21.4.4 利用pear:validate 357
21.5 數據加密 359
21.5.1 php的加密函數 359
21.5.2 mcrypt包 361
21.6 小結 362
第22章 sqlite 363
22.1 sqlite介紹 363
22.1.1 安裝sqlite 363
22.1.2 使用sqlite命令行界麵 364
22.2 php的sqlite庫 365
22.2.1 sqlite.assoc_case=o
· · · · · · (
收起)