《细说PHP》简介:
《细说PHP》开发Web应用程序PHP是最理想的工具,易于使用、功能强大、成本低廉、高安全性、开发速度快且执行灵活。《细说PHP》以实用为目标设计,包含PHP开发最主流的各项技术,对每一个知识点都进行了深入详细的讲解,并附有大量的实例代码,图文并茂。系统地介绍了PHP的相关技术及其在实际Web开发中的应用。
《细说PHP》共17章,每一章都是PHP独立知识点的总结。内容涵盖了PHP的运行环境搭建、Web服务器Apache的配置与应用、动态网站开发的前台技术、PHP编程语言的语法、PHP的常用功能模块和实用技巧、MySQL数据库的设计与应用、PHP 5面向对象的程序设计思想、Web开发的设计模式,以及包含DIV+CSS、mysqli扩展模块、数据库抽象层PDO、Smarty模板技术等目前PHP开发中最主流的技术。每一章中都有大量的实用示例,以及详尽的注释,加速读者的理解和学习,也为每章的技术点设置了大量的自测试题。最后以一个比较完整的、采用面向对象思想,以及通过MVC模式设计,并结合Smarty模板的CMS系统为案例,详细介绍了Web系统开发从设计到部署的各个细节,更好地进行开发实践。
《细说PHP》目录:
第1章 LAMP网站构建 1
1.1 网站软件简介 1
1.1.1 B/S软件体系结构 1
1.1.2 动态网站介绍 2
1.2 动态网站软件开发所需的Web构件 3
1.2.1 客户端浏览器 4
1.2.2 扩展超文本标记语言XHTML 5
1.2.3 层叠样式表CSS 6
1.2.4 XML和XSLT 6
1.2.5 客户端脚本编程语言 7
1.2.6 Web服务器 8
1.2.7 服务器端脚本编程语言 9
1.2.8 数据库管理系统 10
1.3 网站软件开发平台及工作流程 11
1.3.1 动态网站开发平台 11
1.3.2 动态网站开发平台技术比较 12
1.4 客户端与服务器端交互的工作原理 13
1.4.1 HTTP协议是什么 13
1.4.2 Web的工作原理 14
1.5 LAMP网站开发组合概述 16
1.5.1 Linux操作系统 17
1.5.2 Web服务器Apache 17
1.5.3 MySQL数据库管理系统 18
1.5.4 PHP后台脚本编程语言 18
1.5.5 LAMP发展趋势 20
1.6 小结 21
自测题 21
第2章 搭建PHP的开发环境 23
2.1 环境安装对操作系统的选择 23
2.1.1 选择网站运营的操作系统 23
2.1.2 选择网站开发的操作系统 24
2.2 Linux系统下源代码包方式安装环境 24
2.2.1 安装前准备 24
2.2.2 编译安装过程介绍 26
2.2.3 安装libxml2最新库文件 27
2.2.4 安装libmcrypt最新库文件 27
2.2.5 安装zlib最新库文件 28
2.2.6 安装libpng最新库文件 29
2.2.7 安装jpeg6最新库文件 29
2.2.8 安装freetype最新库文件 30
2.2.9 安装autoconf最新的库文件 30
2.2.10 安装最新的GD库文件 31
2.2.11 安装新版本的Apache服务器 31
2.2.12 安装MySQL数据库管理系统 32
2.2.13 安装最新版本的PHP模块 36
2.2.14 安装Zend加速器 38
2.2.15 phpMyAdmin的安装 39
2.2.16 phpMyAdmin的配置 40
2.3 在Windows系统上安装Web工作环境 42
2.3.1 安装前准备 42
2.3.2 安装Apache 43
2.3.3 安装MySQL 46
2.3.4 安装PHP 52
2.3.5 安装Zend加速器 55
2.4 Window系统上安装集成开发环境 57
2.4.1 安装前准备 58
2.4.2 安装步骤 58
2.4.3 环境测试 60
2.5 小结 61
自测题 61
第3章 Apache服务器的配置 62
3.1 Apache简介 62
3.1.1 Apache的诞生 63
3.1.2 Apache的特性 63
3.2 Apache服务器的目录结构 63
3.3 Apache服务器配置文件结构说明 64
3.3.1 Apache服务器配置文件位置 64
3.3.2 配置文件的语法 65
3.4 Apache服务器全局参数设置 66
3.4.1 在主配置文件httpd.conf中的全局参数 67
3.4.2 附加配置文件httpd-default.conf中的
全局参数 70
3.4.3 附加配置文件httpd-mpm.conf中的全局
参数 71
3.5 Apache服务器中使用配置段(容器) 74
3.5.1 文件系统容器 76
3.5.2 网络空间容器 76
3.5.3 通配符和正则表达式 76
3.5.4 如何选择使用容器 77
3.6 .htaccess文件和访问限制 77
3.6.1 设置路径别名 78
3.6.2 在.htaccess文件中设置目录的访问限制 80
3.7 设置虚拟主机 80
3.7.1 基于IP地址的虚拟主机 81
3.7.2 基于主机名的虚拟主机 83
3.8 小结 87
自测题 87
第4章 XHTML和CSS网页标准化布局 89
4.1 网页制作概述 89
4.1.1 XHTML基础 89
4.1.2 CSS基础 91
4.2 HTML的设计与应用 92
4.2.1 XHTML语言的语法 92
4.2.2 XHTML文件的主体结构 94
4.2.3 文字版面的编辑 97
4.2.4 创建图像和链接 99
4.2.5 使用XHTML表格 101
4.2.6 XHTML框架结构 103
4.2.7 XHTML表单设计 106
4.3 CSS的设计与应用 109
4.3.1 将样式表加入到HTML中 110
4.3.2 CSS选择符 111
4.3.3 常见的样式属性和值 113
4.4 DIV+CSS网页标准化布局 120
4.4.1 DIV+CSS的优势 121
4.4.2 “无意义”的元素div和span 121
4.4.3 区块框模型 122
4.4.4 区块框定位 123
4.4.5 区块框浮动 124
4.4.6 使用区块框设计页面布局 126
4.5 XHTML和CSS网站首页面布局实例 129
4.5.1 XHTML文件的设计 129
4.5.2 CSS文件设计 130
4.6 小结 132
自测题 133
第5章 PHP的基本语法 136
5.1 PHP在Web开发中的应用 136
5.2 第一个PHP脚本程序 138
5.2.1 PHP语言标记 141
5.2.2 指令分隔符“分号” 144
5.2.3 程序注释 144
5.2.4 在程序中使用空白的处理 145
5.3 变量 146
5.3.1 变量的声明 146
5.3.2 变量的命名 147
5.3.3 可变变量 148
5.3.4 变量的引用赋值 149
5.4 变量的类型 149
5.4.1 类型介绍 150
5.4.2 布尔型(boolean) 150
5.4.3 整型(integer) 151
5.4.4 浮点型(float或double) 152
5.4.5 字符串(String) 152
5.4.6 数组(Array) 155
5.4.7 对象(Object) 155
5.4.8 资源类型(Resource) 156
5.4.9 NULL类型 156
5.4.10 伪类型介绍 157
5.4.11 数据类型之间相互转换 157
5.5 常量 160
5.5.1 常量的定义和使用 160
5.5.2 常量和变量 161
5.5.3 预定义常量 161
5.6 PHP中的运算符 162
5.6.1 算术运算符 163
5.6.2 字符串运算符 165
5.6.3 赋值运算符 165
5.6.4 比较运算符 166
5.6.5 逻辑运算符 167
5.6.6 位运算符 168
5.6.7 其他运算符 171
5.6.8 运算符的优先级 173
5.7 表达式 174
5.8 小结 174
自测题 174
第6章 PHP的语言结构 176
6.1 流程控制概述 176
6.2 分支结构 176
6.2.1 单一条件分支结构(if) 177
6.2.2 双向条件分支结构(else子句) 178
6.2.3 多向条件分支结构(elseif子句) 179
6.2.4 多向条件分支结构(switch语句) 180
6.2.5 巢状条件分支结构 183
6.2.6 条件分支结构应用实例(简单计算器) 184
6.3 循环结构 186
6.3.1 while语句 187
6.3.2 do…while循环 189
6.3.3 for语句 190
6.3.4 特殊的流程控制语句 192
6.4 PHP中的函数 195
6.4.1 函数的定义 195
6.4.2 自定义函数 195
6.4.3 函数的工作原理和结构化编程 201
6.4.4 PHP变量的范围 202
6.4.5 参数的传递 204
6.4.6 变量函数 207
6.4.7 递归函数 208
6.4.8 使用自定义函数库 209
6.4.9 使用系统函数库 210
6.5 小结 210
自测题 211
第7章 PHP中的数组与数据结构 214
7.1 数组的概述 214
数组的分类 215
7.2 数组的定义 216
7.2.1 直接赋值的方式声明数组 216
7.2.2 使用array()语言结构新建数组 218
7.2.3 多维数组的声明 218
7.3 数组的遍历 220
7.3.1 使用for语句循环遍历数组 220
7.3.2 使用foreach语句遍历数组 222
7.3.3 联合使用list( )、each( )和while循环
遍历数组 225
7.3.4 使用数组的内部指针控制函数遍历
数组 227
7.4 预定义数组 228
7.4.1 服务器变量:$_SERVER 229
7.4.2 环境变量:$_ENV 229
7.4.3 HTTP GET变量:$_GET 230
7.4.4 HTTP POST变量:$_POST 230
7.4.5 request变量:$_REQUEST 232
7.4.6 HTTP文件上传变量:$_FILES 232
7.4.7 HTTP Cookies:$_COOKIE 232
7.4.8 Session变量:$_SESSION 232
7.4.9 Global变量:$GLOBALS 233
7.5 数组的相关处理函数 233
7.5.1 数组的键/值操作函数 233
7.5.2 统计数组元素的个数和唯一性 236
7.5.3 使用回调函数处理数组的函数 237
7.5.4 数组的排序函数 240
7.5.5 拆分、合并、分解和接合数组 244
7.5.6 数组与数据结构 247
7.5.7 其他有用的数组处理函数 248
7.6 小结 250
自测题 250
第8章 PHP面向对象的程序设计 253
8.1 面向对象的介绍 253
8.1.1 类和对象之间的关系 253
8.1.2 面向对象的程序设计 254
8.2 如何抽象一个类 255
8.2.1 类的声明 255
8.2.2 成员属性 256
8.2.3 成员方法 257
8.3 通过类实例化对象 258
8.3.1 创建对象 259
8.3.2 对象类型在内存中的分配 259
8.3.3 对象中成员的访问 261
8.3.4 特殊的对象引用“$this” 263
8.3.5 构造方法与析构方法 264
8.4 封装性 267
8.4.1 设置私有成员 268
8.4.2 私有成员的访问 269
8.4.3 __set()、__get()、__isset()和__unset()
四个方法 271
8.5 继承性 276
8.5.1 类继承的应用 277
8.5.2 访问类型控制 278
8.5.3 子类中重载父类的方法 280
8.6 常见的关键字和魔术方法 282
8.6.1 final关键字的应用 283
8.6.2 static和const关键字的使用 283
8.6.3 克隆对象 285
8.6.4 类中通用的方法__toString() 287
8.6.5 通过__call()方法处理错误调用 287
8.6.6 自动加载类 288
8.6.7 对象串行化 289
8.7 抽象类与接口 291
8.7.1 抽象方法和抽象类 291
8.7.2 接口技术 293
8.8 多态性的应用 295
8.9 小结 300
自测题 300
第9章 字符串处理与正则表达式 303
9.1 字符串的处理介绍 303
9.1.1 字符串的处理方式 303
9.1.2 字符串类型的特点 303
9.2 常用的字符串输出函数 304
9.3 常用的字符串格式化函数 306
9.3.1 去除空格和字符串填补函数 307
9.3.2 字符串大小写的转换 308
9.3.3 和HTML标签相关的字符串格式化 309
9.3.4 其他字符串格式化函数 313
9.4 字符串比较函数 314
9.4.1 按字节顺序进行字符串比较 314
9.4.2 按自然排序进行字符串比较 315
9.5 正则表达式在字符串处理中的应用 316
9.5.1 正则表达式简介 316
9.5.2 正则表达式的语法规则 317
9.6 与Perl兼容的正则表达式函数 322
9.6.1 字符串的匹配与查找 323
9.6.2 字符串的替换 326
9.6.3 字符串的分割和连接 331
9.7 文章发布操作示例 333
9.8 小结 337
自测题 337
第10章 PHP常用功能模块 340
10.1 错误和异常处理 340
10.1.1 错误类型和基本的调试方法 341
10.1.2 错误日志 343
10.1.3 异常处理 345
10.2 日期和时间 350
10.2.1 UNIX时间戳 350
10.2.2 在PHP中获取日期和时间 351
10.2.3 日期和时间格式化输出 352
10.2.4 修改PHP的默认时区 353
10.2.5 使用微秒计算PHP脚本执行时间 354
10.3 动态图像处理 355
10.3.1 PHP中GD库的使用 355
10.3.2 画布管理 356
10.3.3 设置颜色 357
10.3.4 生成图像 358
10.3.5 绘制图像 359
10.3.6 在图像中绘制文字 361
10.3.7 在PHP中实现验证码类的设计.. 363
10.4 小结 367
自测题 367
第11章 文件系统处理 369
11.1 文件系统概述 369
11.1.1 文件类型 369
11.1.2 文件的属性 370
11.2 目录的基本操作 373
11.2.1 解析目录路径 373
11.2.2 遍历目录 375
11.2.3 统计目录大小 376
11.2.4 建立和删除目录 377
11.2.5 复制或移动目录 377
11.3 文件的基本操作 378
11.3.1 文件的打开与关闭 378
11.3.2 写入文件 380
11.3.3 读取文件内容 381
11.3.4 访问远程文件 383
11.3.5 移动文件指针 384
11.3.6 文件的锁定机制 385
11.3.7 文件的一些基本操作函数 387
11.4 文件的上传与下载 388
11.4.1 文件上传 389
11.4.2 处理多个文件上传 392
11.4.3 文件下载 393
11.5 文件系统项目实例 394
11.5.1 功能分析 394
11.5.2 系统功能设计 395
11.5.3 实例代码实现 396
11.6 小结 418
自测题 418
第12章 MySQL数据库设计 420
12.1 MySQL数据库管理 420
12.1.1 数据库管理系统 420
12.1.2 结构化查询语言SQL 421
12.1.3 MySQL数据库的连接与关闭 422
12.1.4 创建、选择及查看数据库 423
12.2 MySQL数据库中数据表的设计 423
12.2.1 数据表(Table) 423
12.2.2 数据值和列类型 424
12.2.3 数据字段属性 427
12.2.4 创建、修改及删除表 427
12.2.5 数据表的类型及存储位置 430
12.2.6 数据表的默认字符集 431
12.2.7 创建索引 432
12.3 数据库的设计步骤 435
12.3.1 需求分析 435
12.3.2 概念设计 437
12.3.3 逻辑设计 439
12.4 SQL语言设计 441
12.4.1 执行DDL命令操作数据对象 441
12.4.2 使用DML命令操作数据表中的数据
记录 443
12.4.3 通过DQL命令查询数据表中的数据 445
12.5 使用PHP脚本向MySQL服务器发送
SQL 455
12.5.1 在PHP脚本中连接MySQL服务器 456
12.5.2 在PHP程序中选择已创建的数据库 456
12.5.3 执行SQL命令 457
12.5.4 在PHP脚本中处理SELECT查询
结果集 458
12.6 小结 460
自测题 460
第13章 PHP的mysqli扩展 464
13.1 启用mysqli扩展模块 464
13.2 使用mysqli类 465
13.2.1 连接MySQL服务器 466
13.2.2 处理连接错误报告 467
13.2.3 关闭与MySQL服务器连接 468
13.2.4 执行SQL命令 469
13.3 使用mysqli_result类 469
13.3.1 创建结果集对象 470
13.3.2 回收查询内存 470
13.3.3 从结果集中解析数据 471
13.3.4 从结果集中获取数据列的信息 474
13.3.5 一次执行多条SQL命令 475
13.4 使用mysqli_stmt类 476
13.4.1 获取预处理语句对象 477
13.4.2 绑定参数 477
13.4.3 执行准备好的语句 478
13.4.4 回收资源 478
13.4.5 简单的示例分析 478
13.4.6 使用预处理语句处理SELECT查询
结果 479
13.5 数据库事务 481
13.5.1 事务处理 481
13.5.2 构建事务应用程序 482
13.6 MVC模式实现商品管理系统 483
13.6.1 MVC设计模式 483
13.6.2 商品管理系统的设计与实现 485
13.7 小结 494
自测题 494
第14章 数据库抽象层PDO 497
14.1 PDO所支持的数据库 497
14.2 PDO的安装 498
14.3 创建PDO对象 499
14.3.1 以多种方式调用构造方法 500
14.3.2 PDO对象中的成员方法 502
14.4 使用PDO对象 502
14.4.1 调整PDO的行为属性 503
14.4.2 PDO处理PHP程序和数据库之间的
数据类型转换 503
14.4.3 PDO的错误处理模式 504
14.4.4 使用PDO执行SQL语句 504
14.5 PDO对预处理语句的支持 506
14.5.1 了解PDOStatement对象 507
14.5.2 准备语句 507
14.5.3 绑定参数 508
14.5.4 执行准备好的查询 509
14.5.5 获取数据 510
14.5.6 大数据对象的存取 513
14.6 PDO的事务处理 514
14.7 小结 515
自测题 515
第15章 会话控制 517
15.1 为什么要使用会话控制 517
15.2 会话跟踪的方式 518
15.3 Cookie的应用 518
15.3.1 Cookie概述 519
15.3.2 向客户端电脑中设置Cookie 519
15.3.3 在PHP脚本中读取Cookie的资料内容 521
15.3.4 数组形态的Cookie应用 521
15.3.5 删除Cookie 522
15.3.6 基于Cookie的用户登录模块 522
15.4 Session的应用 524
15.4.1 Session概述 524
15.4.2 配置Session 525
15.4.3 Session的声明与使用 526
15.4.4 注册一个会话变量和读取Session 526
15.4.5 注销变量与销毁Session 527
15.4.6 传递Session ID 528
15.5 一个简单的邮件系统 530
15.5.1 为邮件系统准备数据 531
15.5.2 编码实现邮件系统 531
15.5.3 邮件系统执行说明 534
15.6 小结 535
自测题 535
第16章 PHP的模板技术Smarty 537
16.1 什么是模板引擎 537
16.2 编写自己的模板引擎 538
16.2.1 创建自己的模板引擎类 538
16.2.2 使用自已的模板引擎 540
16.2.3 自定义模板的使用示例分析 542
16.3 选择Smarty模板引擎 545
16.4 安装Smarty及初使化配置 546
16.4.1 安装Smarty 546
16.4.2 初使化Smarty类库的默认设置 546
16.4.3 第一个Smarty的简单示例 548
16.5 Smarty在应用程序逻辑层的使用步骤 550
16.6 Smarty模板中的程序逻辑 551
16.6.1 模板中的注释 551
16.6.2 模板中变量的声明 552
16.6.3 在模板中输出从PHP分配的变量 552
16.6.4 模板中变量的数学计算 554
16.6.5 在模板中使用{$smarty}保留变量 554
16.6.6 变量调解器 555
16.6.7 模板的控制结构 557
16.6.8 在模板中包含子模板 563
16.7 为Smarty模板创建配置文件 563
16.7.1 配置文件语法格式 563
16.7.2 加载配置文件 564
16.7.3 引用配置文件中的变量 565
16.8 Smarty处理页面缓存 566
16.8.1 在Smarty中控制缓存 567
16.8.2 每个页面多个缓存 568
16.8.3 为缓存实例消除处理开销 568
16.8.4 清除缓存 569
16.8.5 关闭局部缓存 570
16.9 应用Smarty实现分页示例 571
16.9.1 准备工作 571
16.9.2 设计数据库操作类 572
16.9.3 设计分页操作类 573
16.9.4 PHP的程序逻辑层 575
16.9.5 Smarty模板的表现层 576
16.10 小结 577
自测题 577
第17章 内容管理系统(CMS) 579
17.1 Web软件开发流程概述 579
17.1.1 Web开发团队的成员 579
17.1.2 Web软件开发流程 580
17.1.3 项目开发规范 582
17.2 需求分析 584
17.2.1 CMS简介 584
17.2.2 用户行为分析 584
17.2.3 系统目标 585
17.2.4 系统特点 586
17.3 系统功能预览 586
17.3.1 CMS系统安装 586
17.3.2 登录管理平台 589
17.3.3 常规设置管理 590
17.3.4 友情链接管理 591
17.3.5 图片管理 592
17.3.6 栏目管理 595
17.3.7 文章管理 596
17.3.8 用户管理 597
17.3.9 网站首页 598
17.3.10 文章列表页面 599
17.3.11 文章内容页面 600
17.4 数据库设计 601
17.4.1 数据库需求分析 601
17.4.2 数据表关系 605
17.5 系统架构 605
17.5.1 系统体系结构 605
17.5.2 管理平台的文件结构 607
17.5.3 网站前台模板风格的文件结构 608
17.6 常用的功能模块开发 610
17.6.1 系统安装模块设计 610
17.6.2 管理平台(后台)的模块设计 616
17.6.3 无限分类模块设计 619
17.6.4 网站首页面的设计 624
17.7 小结 625
附录A PHP配置文件详解 627
· · · · · ·