写给未来的程序员 1
前言 1
第1章 PHP起步 1
1.1初识PHP 1
1.2LAMP——锋利四剑客:Linux、Apache、MySQL和PHP 1
1.3PHPWeb编程的体系结构和基本内容 2
PHP、HTML、层叠样式表(CSS)和JavaScript及其关系 2
HTML文档 3
使用样式表实现页面效果 3
客户端的响应 4
嵌入式脚本页面 4
1.4Web编程的基础知识之一:HTML 4
HTTP协议简介 4
标签 5
元素 6
HTML的基本元素 7
创建HTML文档 12
创建HTML列表 13
创建页面表格 15
创建页面表单 16
1.5Web编程的基础知识之二:层叠样式表(CSS)简介 17
样式表的基本语法 17
设置页面字体格式 17
设置页面颜色和背景 19
处理页面的边距和填充 20
理解HTML层的概念 20
按Web标准建立网页 20
在网页中引入样式表 21
1.6Web编程的基础知识之三:JavaScript基础 21
网页中的JavaScript 22
JavaScript的变量 22
JavaScript的基本语句 23
使用简单的对话框 27
JavaScript的基本事件 28
JavaScript的函数 28
JavaScript的对象 29
JavaScript中的cookie 33
1.7开始PHP之旅:搭建PHP开发环境 36
下载Apache、MySQL和PHP 36
在Windows下配置开发环境 38
在Linux/UNIX下配置开发环境 40
善其事利其器——PHP编辑器的选择 41
1.8立竿见影 43
编写第一个PHP程序——“Hello,PHP! 43
使用PHP处理HTML表单 43
1.9深入了解Apache、PHP和MySQL 44
Apache服务器目录 45
进行基本的Apache配置 45
Apache的启动与停止 46
PHP的核心配置——php.ini 46
PHP文件上传功能的配置 47
PHP中session的配置 47
PHP中和电子邮件有关的配置 47
PHP基本的安全设置 47
MySQL数据库系统的启动与关闭 47
MySQL对数据的存储 48
1.10实例:使用JavaScript验证HTML表单数据 49
1.11小结 54
第2章 PHP语言 55
2.1基本语法 55
PHP分隔符 55
给PHP程序添加注释 56
2.2变量 56
什么是变量 56
变量的数据类型 57
变量类型的转换 61
可变变量 61
PHP的预定义变量 62
判断变量的类型 63
获取变量的类型 63
设置变量的类型 64
判断一个变量是否已经定义 64
删除一个变量 65
2.3常量 65
什么是常量 65
定义常量 65
使用PHP预定义常量 66
2.4表达式 67
2.5运算符 67
赋值运算符 67
算术运算符 68
递增/递减运算符 69
字符串运算符 70
逻辑运算符 71
比较运算符 71
运算符的优先级 71
2.6PHP程序的流程控制 72
程序流程控制概述 72
条件控制语句:if和if*else语句 73
switch结构 76
循环控制语句:for循环语句 77
while循环语句 78
do...while循环语句 79
break和continue语句 80
条件运算符:?: 81
2.7函数 81
PHP中函数的概念 81
定义函数和调用函数 82
函数的参数和函数的返回值 83
PHP函数的传值与传址 85
函数和变量作用域 86
2.8小结 88
第3章 用PHP进行Web编程 89
3.1PHP的Web编程基础 89
访问和获取HTML表单数据 89
用PHP处理表单数据 91
用PHP验证表单数据有效性 92
PHP中的session 93
PHP中的文件上传处理 94
3.2实例:用PHP开发一个简单的网站 96
网站功能设计 96
页面设计 96
用JavaScript实现客户端响应 97
服务器端用PHP处理请求 98
3.3小结 101
第4章 PHP对数组的处理 102
4.1建立数组的方法 102
4.2输出数组元素的方法 103
使用for循环语句输出数组元素 103
使用foreach循环语句输出数组元素 104
使用print/r函数显示数组元素 105
4.3计算数组元素个数 106
4.4对数组进行分割、合并 107
实现数组分割 107
实现数组合并 108
4.5处理数组元素和键值位置 109
4.6对数组进行排序 110
使用sort对数组进行排序 110
使用rsort对数组进行逆向排序 111
排序时保持原数组的索引 112
数组的随机排序 113
数组的反向排序 114
4.7重置一个数组 115
4.8用数组对变量赋值 116
4.9快速创建数组 117
4.10压入和弹出数组元素 118
压入数组元素 118
弹出数组元素 118
4.11改变数组字符索引名的大小写 120
4.12对数组的集合处理 121
4.13交换数组索引和元素 123
4.14快速填充数组元素 123
4.15统计数组元素出现次数 124
4.16检查数组索引是否存在 125
4.17取得数组中的所有索引 126
4.18用回调函数处理数组 127
4.19其他数组处理函数 127
判断某个值是否存在于数组 128
获取数组中当前单元的索引值 129
4.20小结 129
第5章PHP对字符串的处理 131
5.1对字符串做分割和合并 131
5.2对字符串做比较和替换 132
比较两个字符串大小 132
字符串的替换 133
5.3输出打印字符串 135
5.4格式化字符串 135
5.5获取字符串中的一个子串 137
5.6删除字符串末尾部分的空白字符 138
5.7删除字符串开始部分的空白字符 138
5.8删除字符串两头的空白字符 139
5.9获取字符串的长度 140
5.10对字符串做大小写转换 141
5.11处理含有HTML标记的字符串 142
5.12多次生成一个字符串 144
5.13将字符串分析到变量 145
5.14转换字符串到数组 146
5.15计算字符串的Hash(哈希) 147
5.16小结 149
第6章 用PHP操作目录和文件 150
6.1目录操作 150
打开和关闭目录 150
获取目录中下一个文件的文件名 150
列出某一目录下的所有文件 151
获取和改变PHP的当前工作目录 152
6.2文件操作 153
打开和关闭文件 153
读出文件的内容 154
向文件写入内容 156
获取文件的相关信息 157
一些判断文件性质的函数 158
获取路径中的文件名和目录名 159
判断文件或目录是否存在 160
用PHP建立目录和删除目录 161
用PHP复制、删除和移动文件 162
用PHP处理文件的锁定 163
用PHP更改文件的属性 164
获取文件时间属性 164
通过HTTP协议打开文件 165
包含指定的文件到当前文件 166
使用PHP处理文件上传 168
6.3小结 168
第7章 用PHP处理日期和时间 169
7.1获取格式化的日期和时间 169
7.2处理UNIX时间戳 170
7.3获取日期和时间的相关信息 172
7.4PHP中的日期计算 173
7.5检查日期的有效性 174
7.6小结 175
第8章PHP中对URL.HTTP的处理 176
8.1URL地址分析 176
为什么要对URL进行处理 176
对URL进行编码 176
对URL进行解码 177
对URL地址进行分析 177
8.2HTTP应用 179
生成一个HTTP头 179
获取HTTP头信息 181
8.3在PHP中生成cookie 182
生成cookie 182
获取cookie 183
cookie的有效期 184
cookie的有效路径 184
删除cookie 185
8.4小结 185
第9章 PHP中的数学运算 186
9.1常见的数学运算 186
9.2不同进制之间的数字转换 187
9.3生成随机数 188
9.4小结 189
第10章用PHP获取系统信息 190
10.1获取和添加PHP环境变量 190
10.2查看被载入的PHP扩展模块 192
获取PHP的当前各类信息 193
获取当前PHP进程的进程号和所有者 194
小结 194
第11章 应用实践一:基于文本的简易BLOG系统 195
11.1系统功能设计 195
11.2系统功能实现 195
数据的存储及系统架构 196
实现BLOG文章的显示 196
完善用户界面 199
实现BLOG文章的添加功能 204
实现登录功能 209
实现BLOG首页 211
实现BLOG文章的编辑功能 215
实现BLOG文章的删除功能 219
实现BLOG归档显示的功能 221
实现BLOG的退出功能 225
11.3小结 227
第12章 MySQL数据库和SQL基础 228
12.1MySQL数据库简介 228
12.2MySQL数据库的基本操作 228
表、字段、记录和键的概念 228
登录和退出MySQL 229
建立和删除数据库 230
表的建立 230
建立索引 232
12.3MySQL中的SQL语法基础 232
查看表结构 232
插入数据 233
查询数据 233
条件查询 234
更新数据 235
删除数据 236
对查询结果做排序 236
对查询结果做分组 237
对查询结果做限定 237
MySQL的数据类型 238
MySQL运算符 239
MySQL中的模式匹配 239
使用MySQL函数 239
12.4小结 242
第13章 使用PHP操作MySQL数据库 243
13.1操作MySQL的PHP函数 243
连接和关闭数据库的函数 243
执行SQL语句的函数 244
处理查询结果集的函数 244
获取字段信息的函数 245
数据库操作的其他函数 245
13.2使用PHP连接MySQL数据库 245
建立和数据库的连接 246
持久连接和临时连接 247
关闭连接 247
13.3使用PHP显示MySQL数据库的数据 248
在PHP中执行SQL语句 248
用PHP处理数据结果集 250
向Web页面显示数据 252
数据分页显示的原理及实现 254
13.4用PHP维护MySQL数据库的数据 257
从页面获取数据并插入数据库 257
根据表单内容修改数据库数据 260
通过PHP删除数据库数据 262
13.5PHP操作MySQL常见错误信息及分析 265
13.6小结 266
第14章 面向对象的PHP编程 268
14.1面向对象编程的基本概念 268
14.2PHP中的类和对象 269
类的创建 269
类的实例化——对象 270
构造函数和析构函数 271
继承 273
访问对象的属性和方法 274
PHP中类的静态成员 275
PHP中一些和类有关的函数 277
14.3实例分析——深入理解PHP的类和对象 280
14.4小结 285
第15章 PHP中的正则表达式 286
15.1什么是正则表达式 286
15.2正则表达式的语法 286
模式 287
元字符 287
转义字符 289
字符类 289
反义 289
数量匹配限定符 290
正则表达式构建实例 290
15.3PHP中的POSIX扩展正则表达式函数 291
正则表达式匹配函数 291
替换匹配字符串的函数 293
根据正则表达式分割字符串的函数 295
生成正则表达式的函数 296
15.4PHP中的PERL兼容正则表达式函数 297
PERL兼容正则表达式中的修正符 297
返回与模式匹配的数组单元的正则表达式函数 298
进行正则表达式匹配的函数 299
进行全局正则表达式匹配的函数 300
执行正则表达式的搜索和替换的函数 301
用正则表达式分割字符串的函数 302
15.5几例常见正则表达式分析 304
检查IP地址的正则表达式 304
检查中文字符的正则表达式 306
检查E-mail地址的正则表达式 307
检查URL地址的正则表达式 309
15.6小结 310
第16章 PHP程序中的错误处理 312
16.1重视程序中的错误处理 312
16.2在PHP中处理程序错误 312
语法错误的处理 312
运行时错误的处理 313
逻辑错误的处理 314
16.3PHP中的异常处理类及其用法 315
PHP中的异常处理类 315
PHP程序中捕获异常的方法 316
获取异常信息的函数 317
获取错误发生所在文件的函数 318
获取错误发生所在行的函数 319
16.4PHP配置中和错误处理有关的内容 320
16.5PHP中自定义的错误处理 321
16.6小结 323
第17章 PHP与XML 324
17.1什么是XML 324
17.2建立一个简单的XML文件 325
17.3深入认识XML文档 327
XML声明 328
XML元素 328
标记和属性 329
注释 330
处理指令 331
实体简介 331
文件类型定义(DTD) 332
17.4在PHP中建立对XML的支持 334
17.5用PHP函数处理XML文档 336
XML解析器的建立和释放 336
处理XML元素的函数 336
处理XML字符数据的函数 337
解析一个XML文档 337
完整实例分析 338
17.6使用SimpleXML处理XML 339
SimpleXML简介 340
载入XML文件的函数 340
载入XML字符串的函数 341
使用SimpleXML的实例 342
17.7使用PHP的DOM库处理XML文档 343
17.8小结 345
第18章PHP与Ajax 346
18.1什么是Ajax 346
18.2Ajax的工作原理 346
18.3PHP与Ajax的应用 347
创建XMLHttpRequest对象 347
发送异步请求 349
编写回调函数 351
完整实例 352
18.4一个实现Ajax的PHP类——xajax 355
下载和安装xajax 355
xajax简介 356
在PHP程序中使用xajax 357
xajax应用实例 357
18.5小结 359
第19章 PHP与图像处理 360
19.1PHP的图像处理库——GD库 360
安装GD库 360
主要图像处理函数 361
19.2图像的建立 362
用PHP生成图像 362
设定图像颜色 362
在图像上绘制直线 363
在图像上输出文字 364
19.3图片处理 366
打开已经存在的图片 366
获取图片的相关属性 367
对图片加水印效果 369
生成已有图片的缩略图 373
19.4实例:生成带有底纹的数字验证码图片 375
19.5小结 376
第20章 PHP与MVC开发模式 378
20.1什么是MVC模型 378
20.2MVC模型的组成 379
控制器 379
数据模型 379
视图 379
20.3PHP开发中的模板技术 379
什么是模板 380
在PHP程序中使用模板 380
Smarty模板引擎 381
Smarty模板引擎的使用 381
20.4常见的基于MVC的PHP开发框架简介 383
CodeIgniter 383
CakePHP 383
ZendFramework 384
FleaPHP 384
20.5CodeIgniter框架应用 385
CodeIgniter的技术特点 385
安装CodeIgniter 386
CodeIgniter的Controller(控制器) 386
CodeIgniter的Model(数据模型) 388
CodeIgniter的View(视图) 389
20.6小结 391
第21章 应用实践二:用PHP发送邮件 392
21.1mail()函数和SMTP协议简介 392
mail()函数配置与语法 392
SMTP协议与指令 392
21.2功能设计和实现 393
设计一个发送邮件的类 393
测试发送邮件功能 397
发送邮件的表单及程序实现 398
21.3小结 401
第22章 应用实践三:简易论坛系统 402
22.1论坛的功能设计 402
系统流程分析 402
功能设计 402
数据库设计 403
界面设计 406
22.2系统前端功能的实现 410
处理数据库连接和断开操作的程序 410
全局数据设置 411
实现用户注册 412
实现论坛首页 418
实现浏览主题列表 420
实现用户登录和注销 428
实现主题的发表、回复和编辑 432
实现回复主题的页面程序 435
实现编辑主题的页面程序 440
实现主题的删除 442
实现用户信息浏览 444
22.3后台管理功能的实现 446
管理员登录功能和后台管理界面框架 446
主题管理功能 449
板块管理功能 451
用户管理功能 452
22.4小结 454
附录A配置Eclipse成为PHP开发工具 455
附录B正则表达式参考 459
附录CPHP代码编写的一般规则 462
附录D使用phpMyAdmin管理MySQL数据库 465