编辑推荐
适读人群 :想从事动态网站开发人员 接受PHP培训的学员 Web开发爱好者 网站维护及管理人员 初级或专业的网站开发人员 大中专院校的教师及培训中心的讲师 进行毕业设计和对PHP感兴趣的学生 从事ASP或JSP而想转向PHP开发的程序员 《跟兄弟连学PHP》即畅销书《细说PHP(第2版)》的全新升级版,用一年时间为本书重新录制了长达8000分钟的真人出镜的视频教程,与本版书完全配套,全面覆盖了书中的每个知识点!
海报:
内容简介
本书是畅销书《细说PHP(第2版)》升级版。PHP是当前开发Web应用系统*理想的工具,它易于使用、功能强大、成本低廉、高安全性、开发速度快且执行灵活,应用非常广泛。全书以实用为设计目标,包含PHP开发*主流的各项技术,对每一个知识点都进行了深入详细的讲解,并附有大量的实例代码,图文并茂,系统地介绍了PHP的相关技术及其在实际Web开发中的应用。 本书是《细说PHP》第三版,全书共6个部分,分为32个章节,每章都是PHP独立知识点的总结。内容涵盖了动态网站开发的前端技术(HTML5)、企业现在主流应用版本PHP 5.4为主的语法、PHP的常用功能模块和实用技巧、MySQL数据库的设计与应用、PHP 面向对象的程序设计思想、数据库抽象层PDO、Smarty模板技术、Web开发的设计模式、自定义PHP技术框架**版BroPHP 2.0、重新开发包括完整流程的极具参考价值的Web项目(BroShop)等内容。每章都有大量的实用示例及详尽的注释,以加速读者的理解和学习,同时为每章的技术点设置了大量的自测试题。*重要的是本书全部内容都有精心录制的配套教学视频覆盖,视频中真人出镜、师生互动、讲解生动、操作性强,并且多数技术概念以微电影形式穿插在视频中进行讲解说明。 对于PHP应用开发的新手而言,本书不失为一本好的入门教材,内容既实用又全面,所有实例都可以在开发中直接应用,并辅以大量的视频教程,使读者轻松掌握所学知识。另外,本书也适合有一定基础的网络开发人员和网络爱好者,以及大中专院校的师生阅读与参考。不仅可以作为PHP开发的学习用书,还可以作为从事Web开发的程序员的参考用书和必备手册。对于行家来说,本书也是一本难得的参考手册,读者必将从中获益。
作者简介
兄弟连IT教育,成立于2006年,中国PHP培训领导者,九年专注PHP教育,所发布的PHP视频教程,出版的PHP图书,开设的PHP培训班,推动了国内PHP技术发展,培养了众多的PHP程序员,堪称PHP程序员的黄埔军校。
目录
第1部分 Web开发入门篇
第1章 LAMP网站构建 2
1.1 介绍Web给你认识 2
1.1.1 Web应用的优势 3
1.1.2 Web 2.0时代的互联网 4
1.1.3 Web开发标准 6
1.1.4 认识脚本语言 7
1.2 动态网站开发所需的Web构件 7
1.2.1 客户端浏览器 8
1.2.2 超文本标记语言(HTML) 9
1.2.3 层叠样式表(CSS) 10
1.2.4 客户端脚本编程语言JavaScript 11
1.2.5 Web服务器 11
1.2.6 服务器端编程语言 12
1.2.7 数据库管理系统 13
1.3 几种主流的Web应用程序平台 14
1.3.1 Web应用程序开发平台对比分析 14
1.3.2 动态网站开发平台技术比较 15
1.4 HTTP协议与Web的关系 16
1.4.1 HTTP协议概述 16
1.4.2 HTTP协议结构 18
1.4.3 HTTP请求消息 18
1.4.4 HTTP响应消息 19
1.4.5 URL概述 20
1.5 Web的工作原理 20
1.5.1 情景1:服务器不带应用程序服务器
和数据库 21
1.5.2 情景2:带应用程序服务器的Web
服务器 22
1.5.3 情景3:浏览器访问服务器端的数据库 23
1.6 LAMP网站开发组合概述 23
1.6.1 Linux操作系统 23
1.6.2 Web服务器Apache 24
1.6.3 MySQL数据库管理系统 24
1.6.4 PHP后台脚本编程语言 25
1.6.5 LAMP的发展趋势 27
1.6.6 Web的未来发展 28
1.7 如何学习PHP 28
1.7.1 确定学习的目标 29
1.7.2 PHP学习线路图 29
1.7.3 坚持动手实验 31
1.7.4 要事为先的原则 31
1.7.5 Bug解决之道 32
1.7.6 看教学视频,让学习变得简单 33
1.7.7 优秀的Web程序员是怎样练成的 33
1.8 小结 35
本章必须掌握的知识点 35
本章需要了解的内容 35
第2章 HTML的设计与应用 36
2.1 网页制作概述 36
2.1.1 HTML基础 36
2.1.2 简单HTML实例制作 37
2.2 HTML语言的语法 38
2.2.1 HTML标签和元素 38
2.2.2 HTML语法不区分字母大小写 38
2.2.3 HTML标签属性 39
2.2.4 HTML颜色值的设置 39
2.2.5 HTML文档注释 39
2.2.6 HTML代码格式 39
2.2.7 HTML字符实体 40
2.3 HTML文件的主体结构 40
2.4 HTML文档头部元素<head> 41
2.4.1 <title>元素 41
2.4.2 <base>元素 41
2.4.3 <link>元素 42
2.4.4 <meta>元素 42
2.5 HTML文档主体标记 43
2.6 文字版面的编辑 43
2.6.1 格式标签 44
2.6.2 文本标签 45
2.7 创建图像和链接 47
2.7.1 插入图片 47
2.7.2 建立锚点和超链接 48
2.8 使用HTML表格 48
2.9 HTML框架结构 51
2.10 HTML表单设计 53
2.11 小结 57
本章必须掌握的知识点 57
本章需要了解的内容 58
本章需要拓展的内容 58
本章的学习建议 58
第3章 层叠样式表 59
3.1 CSS简介 59
3.2 CSS规则的组成 60
3.2.1 CSS注释 61
3.2.2 长度单位 62
3.2.3 颜色单位和URL值 62
3.3 在HTML文档中放置CSS的几种方式 63
3.3.1 内联样式表 63
3.3.2 嵌入一张样式表 63
3.3.3 链接到一张外部的样式表 63
3.4 CSS选择器 64
3.4.1 HTML选择器 64
3.4.2 类选择器 64
3.4.3 ID选择器 65
3.4.4 关联选择器 65
3.4.5 组合选择器 65
3.4.6 伪元素选择器 66
3.5 CSS常见的样式属性和值 66
3.5.1 字体属性 66
3.5.2 颜色属性 67
3.5.3 背景属性 67
3.5.4 文本属性 68
3.5.5 边框属性 68
3.5.6 鼠标光标属性 70
3.5.7 列表属性 70
3.5.8 综合实例 71
3.6 小结 73
本章必须掌握的知识点 73
本章需要了解的内容 73
本章需要拓展的内容 73
本章的学习建议 74
第4章 DIV+CSS网页标准化布局 75
4.1 DIV+CSS对页面布局的优势 75
4.2 “无意义”的HTML元素div和span 76
4.3 W3C盒子模型 76
4.4 和页面布局有关的CSS属性 78
4.5 盒子区块框的定位 79
4.5.1 相对定位 80
4.5.2 绝对定位 80
4.6 使用盒子模型的浮动布局 81
4.6.1 设置浮动 81
4.6.2 行框和清理 82
4.7 DIV+CSS的兼容性问题 84
4.7.1 不同浏览器解释盒子模型的差异 85
4.7.2 设置浏览器去遵循W3C标准 86
4.8 使用盒子模型设计页面布局 87
4.8.1 居中设计 87
4.8.2 设置两列浮动的布局 88
4.8.3 设置三列浮动的布局 89
4.8.4 设置多列浮动的布局 90
4.9 DIV+CSS网站首页布局示例 91
4.9.1 HTML文件的设计 91
4.9.2 CSS文件设计 93
4.10 小结 95
本章必须掌握的知识点 95
本章需要了解的内容 95
本章需要拓展的内容 95
本章的学习建议 95
第5章 HTML5与CSS3的应用 96
5.1 现在是用HTML5的时候 96
5.2 HTML5语法的改变 97
5.2.1 HTML5中的标记方法 97
5.2.2 HTML5做到了与之前版本的兼容 98
5.2.3 HTML5语法改变的简单示例 99
5.3 HTML5新增和废除的元素 99
5.3.1 新增的结构元素 99
5.3.2 HTML5表单增加的新特性 101
5.3.3 新增多媒体播放元素 104
5.3.4 新增的其他元素 105
5.3.5 废除的元素 106
5.4 HTML5新增和废除的属性 106
5.5 HTML5的高级功能介绍 108
5.6 CSS3概述 109
5.6.1 CSS3在选择器上的支持 109
5.6.2 CSS3在样式上的支持 109
5.6.3 CSS3对于动画的支持 109
5.6.4 在实际开发中该如何使用CSS3 110
5.7 CSS3中的样式选择器 110
5.7.1 基本选择器 110
5.7.2 多元素的组合选择器 111
5.7.3 属性选择器 111
5.7.4 结构性伪类选择器 112
5.8 CSS3的样式属性 113
5.8.1 使用CSS3属性前的准备 114
5.8.2 边框属性 114
5.8.3 背景属性 115
5.8.4 文本属性 116
5.8.5 用户界面属性 117
5.8.6 动画属性 117
5.8.7 多列布局属性 118
5.8.8 渐变属性 118
5.8.9 透明属性 119
5.8.10 旋转属性 119
5.8.11 服务器端字体属性 119
5.9 使用HTML5中的新增元素来构建
网页 120
5.10 LESS CSS框架简介 124
5.11 响应式布局 125
5.11.1 响应式布局的优缺点 125
5.11.2 响应式布局该怎么设计 126
5.11.3 响应式布局实例 126
5.11.4 Media Queries的使用方法 128
5.11.5 在移动设备上设置原始大小显示 132
5.11.6 响应式网站的内容设计 132
5.11.7 响应式网站的设计流程 134
5.12 Web前端CSS框架Bootstrap介绍 134
5.12.1 Bootstrap的主要功能 135
5.12.2 Bootstrap的页面布局和排版 135
5.12.3 页面下拉菜单 135
5.12.4 Bootstrap的优点和不足 136
5.13 小结 137
本章必须掌握的知识点 137
本章需要了解的内容 137
本章需要拓展的内容 137
本章的学习建议 137
第2部分 PHP基础篇
第6章 从搭建你的PHP开发环境开始 139
6.1 几种常见的PHP环境安装方式 139
6.1.1 Linux系统下源代码包方式安装
环境 139
6.1.2 在Windows系统上安装Web
工作环境 140
6.1.3 搭建学习型的PHP工作环境 140
6.2 环境安装对操作系统的选择 140
6.2.1 选择网站运营的操作系统 141
6.2.2 选择网站开发的操作系统 141
6.3 安装集成PHP开发环境 141
6.3.1 安装前准备 142
6.3.2 安装步骤 142
6.3.3 环境测试 143
6.4 改变文档根目录www的位置 145
6.5 phpMyAdmin的配置与应用 146
6.5.1 HTTP身份验证模式 146
6.5.2 Cookie身份验证模式 147
6.5.3 config身份验证模式 147
6.5.4 修改MySQL默认的访问权限 148
6.6 小结 149
本章必须掌握的知识点 149
本章需要了解的内容 149
本章需要拓展的内容 149
第7章 PHP的基本语法 150
7.1 PHP在Web开发中的应用 150
7.1.1 就从认识PHP开始吧 150
7.1.2 PHP都能做什么 151
7.2 第一个PHP脚本程序 153
7.3 PHP语言标记 156
7.3.1 将PHP代码嵌入HTML中的位置 157
7.3.2 解读开始和结束标记 157
7.4 指令分隔符“分号” 158
7.5 程序注释 159
7.6 在程序中使用空白的处理 160
7.7 变量 161
7.7.1 变量的声明 161
7.7.2 变量的命名 162
7.7.3 可变变量 164
7.7.4 变量的引用赋值 164
7.8 变量的类型 165
7.8.1 类型介绍 165
7.8.2 布尔型(boolean) 166
7.8.3 整型(integer) 167
7.8.4 浮点型(float或double) 167
7.8.5 字符串(string) 168
7.8.6 数组(array) 170
7.8.7 对象(object) 171
7.8.8 资源类型(resource) 171
7.8.9 NULL类型 172
7.8.10 伪类型介绍 172
7.9 数据类型之间相互转换 173
7.9.1 自动类型转换 173
7.9.2 强制类型转换 174
7.9.3 类型转换细节 174
7.9.4 变量类型的测试函数 175
7.10 常量 176
7.10.1 常量的定义和使用 176
7.10.2 常量和变量 177
7.10.3 系统中的预定义常量 177
7.10.4 PHP中的魔术常量 177
7.11 PHP中的运算符 178
7.11.1 算术运算符 179
7.11.2 字符串运算符 181
7.11.3 赋值运算符 181
7.11.4 比较运算符 182
7.11.5 逻辑运算符 183
7.11.6 位运算符 184
7.11.7 其他运算符 187
7.11.8 运算符的优先级 188
7.12 表达式 189
7.13 小结 190
本章必须掌握的知识点 190
本章需要了解的内容 190
本章需要拓展的内容 190
第8章 PHP的流程控制结构 191
8.1 分支结构 191
8.1.1 单一条件分支结构(if) 192
8.1.2 双向条件分支结构(else子句) 193
8.1.3 多向条件分支结构(elseif子句) 193
8.1.4 多向条件分支结构(switch语句) 195
8.1.5 巢状条件分支结构 197
8.1.6 条件分支结构实例应用(简单计算器) 197
8.2 循环结构 199
8.2.1 while语句 200
8.2.2 do…while循环 202
8.2.3 for语句 203
8.3 特殊的流程控制语句 205
8.3.1 break语句 205
8.3.2 continue语句 206
8.3.3 exit语句 207
8.4 PHP的新版特性――goto语句 207
8.5 小结 209
本章必须掌握的知识点 209
本章需要了解的内容 209
第9章 PHP的函数应用 210
9.1 函数的定义 210
9.2 自定义函数 211
9.2.1 函数的声明 211
9.2.2 函数的调用 213
9.2.3 函数的参数 214
9.2.4 函数的返回值 215
9.3 函数的工作原理和结构化编程 216
9.4 PHP变量的范围 217
9.4.1 局部变量 217
9.4.2 全局变量 218
9.4.3 静态变量 220
9.5 声明及应用各种形式的PHP函数 220
9.5.1 常规参数的函数 221
9.5.2 伪类型参数的函数 222
9.5.3 引用参数的函数 222
9.5.4 默认参数的函数 223
9.5.5 可变个数参数的函数 225
9.5.6 回调函数 226
9.6 递归函数 230
9.7 使用自定义函数库 231
9.8 PHP匿名函数和闭包 232
9.9 小结 233
本章必须掌握的知识点 233
本章需要了解的内容 233
本章需要拓展的内容 233
第10章 PHP中的数组与数据结构 234
10.1 数组的分类 234
10.2 数组的定义 236
10.2.1 直接赋值的方式声明数组 236
10.2.2 使用array()语言结构新建数组 238
10.2.3 多维数组的声明 238
10.3 数组的遍历 240
10.3.1 使用for语句循环遍历数组 241
10.3.2 使用foreach语句遍历数组 242
10.3.3 联合使用list( )、each( )和while
循环遍历数组 245
10.3.4 使用数组的内部指针控制函数遍
历数组 247
10.4 预定义数组 248
10.4.1 服务器变量:$_SERVER 249
10.4.2 环境变量:$_ENV 250
10.4.3 URL GET变量:$_GET 250
10.4.4 HTTP POST变量:$_POST 251
10.4.5 request变量:$_REQUEST 252
10.4.6 HTTP文件上传变量:$_FILES 252
10.4.7 HTTP Cookies:$_COOKIE 252
10.4.8 Session变量:$_SESSION 252
10.4.9 Global变量:$GLOBALS 253
10.5 数组的相关处理函数 253
10.5.1 数组的键/值操作函数 253
10.5.2 统计数组元素的个数和唯一性 256
10.5.3 使用回调函数处理数组的函数 257
10.5.4 数组的排序函数 261
10.5.5 拆分、合并、分解和接合数组 265
10.5.6 数组与数据结构 267
10.5.7 其他有用的数组处理函数 269
10.6 操作PHP数组需要注意的一些细节 271
10.6.1 数组运算符号 271
10.6.2 删除数组中的元素操作 272
10.6.3 关于数组下标的注意事项 272
10.7 小结 273
本章必须掌握的知识点 273
本章需要了解的内容 273
本章需要拓展的内容 273
第11章 PHP面向对象的程序设计 274
11.1 面向对象的介绍 274
11.1.1 类和对象之间的关系 275
11.1.2 面向对象的程序设计 275
11.2 如何抽象一个类 276
11.2.1 类的声明 276
11.2.2 成员属性 277
11.2.3 成员方法 278
11.3 通过类实例化对象 279
11.3.1 实例化对象 280
11.3.2 对象类型在内存中的分配 281
11.3.3 对象中成员的访问 282
11.3.4 特殊的对象引用“$this” 284
11.3.5 构造方法与析构方法 286
11.4 封装性 288
11.4.1 设置私有成员 289
11.4.2 私有成员的访问 290
11.4.3 __set()、__get()、__isset()和__unset()
4个方法 292
11.5 继承性 297
11.5.1 类继承的应用 297
11.5.2 访问类型控制 299
11.5.3 子类中重载父类的方法 301
11.6 常见的关键字和魔术方法 303
11.6.1 final关键字的应用 303
11.6.2 static关键字的使用 304
11.6.3 单态设计模式 305
11.6.4 const关键字 307
11.6.5 instanceof关键字 307
11.6.6 克隆对象 307
11.6.7 类中通用的方法__toString() 309
11.6.8 __call()方法的应用 309
11.6.9 自动加载类 311
11.6.10 对象串行化 312
11.7 抽象类与接口 315
11.7.1 抽象类 315
11.7.2 接口技术 316
11.8 多态性的应用 318
11.9 PHP 5.4的Trait特性 320
11.9.1 Trait的声明 320
11.9.2 Trait的基本使用 320
11.10 PHP 5.3版本以后新增加的命名空间 323
11.10.1 命名空间的基本应用 323
11.10.2 命名空间的子空间和公共空间 325
11.10.3 命名空间中的名称和术语 326
11.10.4 别名和导入 326
11.11 面向对象版图形计算器 328
11.11.1 需求分析 328
11.11.2 功能设计及实现 329
11.11.3 类的组织架构 334
11.12 小结 335
本章必须掌握的知识点 335
本章需要了解的内容 336
本章需要拓展的内容 336
第12章 字符串处理 337
12.1 字符串的处理介绍 337
12.1.1 字符串的处理方式 337
12.1.2 字符串类型的特点 338
12.1.3 双引号中的变量解析总结 338
12.2 常用的字符串输出函数 339
12.3 常用的字符串格式化函数 342
12.3.1 去除空格和字符串填补函数 342
12.3.2 字符串大小写的转换 343
12.3.3 和HTML标签相关的字符串
格式化 344
12.3.4 其他字符串格式化函数 348
12.4 字符串比较函数 349
12.4.1 按字节顺序进行字符串比较 349
12.4.2 按自然排序进行字符串比较 350
12.5 小结 351
本章必须掌握的知识点 351
本章需要拓展的内容 351
第13章 正则表达式 352
13.1 正则表达式简介 352
13.2 正则表达式的语法规则 353
13.2.1 定界符 354
13.2.2 原子 354
13.2.3 元字符 356
13.2.4 模式修正符 359
13.3 与Perl兼容的正则表达式函数 360
13.3.1 字符串的匹配与查找 360
13.3.2 字符串的替换 363
13.3.3 字符串的分割和连接 368
13.4 文章发布操作示例 370
13.5 小结 375
本章必须掌握的知识点 375
本章需要了解的内容 375
本章需要拓展的内容 375
第3部分 PHP常用功能模块篇
第14章 PHP的错误和异常处理 377
14.1 错误处理 377
14.1.1 错误报告级别 378
14.1.2 调整错误报告级别 378
14.1.3 使用trigger_error()函数代替die()
函数 380
14.1.4 自定义错误处理 380
14.1.5 写错误日志 382
14.2 异常处理 384
14.2.1 异常处理实现 385
14.2.2 扩展PHP内置的异常处理类 385
14.2.3 捕获多个异常 387
14.3 小结 389
本章必须掌握的知识点 389
本章需要了解的内容 389
第15章 PHP的日期和时间 390
15.1 UNIX时间戳 390
15.1.1 将日期和时间转变成UNIX
时间戳 390
15.1.2 日期的计算 392
15.2 在PHP中获取日期和时间 392
15.2.1 调用getdate()函数取得日期/时间
信息 392
15.2.2 日期和时间格式化输出 393
15.3 修改PHP的默认时区 394
15.4 使用微秒计算PHP脚本执行时间 395
15.5 日历类 396
15.6 小结 400
本章必须掌握的知识点 400
本章需要了解的内容 400
本章需要拓展的内容 400
本章的学习建议 400
第16章 文件系统处理 401
16.1 文件系统概述 401
16.1.1 文件类型 401
16.1.2 文件的属性 402
16.2 目录的基本操作 405
16.2.1 解析目录路径 405
16.2.2 遍历目录 406
16.2.3 统计目录大小 408
16.2.4 建立和删除目录 409
16.2.5 复制目录 409
16.3 文件的基本操作 410
16.3.1 文件的打开与关闭 410
16.3.2 写入文件 412
16.3.3 读取文件内容 413
16.3.4 访问远程文件 415
16.3.5 移动文件指针 416
16.3.6 文件的锁定机制 417
16.3.7 文件的一些基本操作函数 420
16.4 文件的上传与下载 421
16.4.1 文件上传 421
16.4.2 处理多个文件上传 424
16.4.3 文件下载 425
16.5 设计经典的文件上传类 426
16.5.1 需求分析 426
16.5.2 程序设计 427
16.5.3 文件上传类代码实现 427
16.5.4 文件上传类的应用过程 432
16.6 小结 433
本章必须掌握的知识点 433
本章需要了解的内容 434
本章需要拓展的内容 434
本章的学习建议 434
第17章 PHP动态图像处理 435
17.1 PHP中GD库的使用 435
17.1.1 画布管理 436
17.1.2 设置颜色 437
17.1.3 生成图像 438
17.1.4 绘制图像 438
17.1.5 在图像中绘制文字 440
17.2 设计经典的验证码类 443
17.2.1 设计验证码类 443
17.2.2 应用验证码类的实例对象 446
17.2.3 表单中应用验证码 446
17.2.4 实例演示 447
17.3 PHP图片处理 447
17.3.1 图片背景管理 447
17.3.2 图片缩放 449
17.3.3 图片裁剪 450
17.3.4 添加图片水印 451
17.3.5 图片旋转和翻转 453
17.4 设计经典的图像处理类 455
17.4.1 需求分析 455
17.4.2 程序设计 456
17.4.3 图像处理类代码实现 456
17.4.4 图像处理类的应用过程 461
17.5 小结 463
本章必须掌握的知识点 463
本章需要了解的内容 463
本章需要拓展的内容 463
第4部分 数据库开发篇
第18章 MySQL数据库概述 465
18.1 数据库的应用 465
18.1.1 数据库在Web开发中的重要地位 466
18.1.2 为什么PHP会选择MySQL作为
自己的黄金搭档 466
18.1.3 PHP和MySQL的合作方式 466
18.1.4 结构化查询语言SQL 467
18.2 MySQL数据库的常见操作 468
18.2.1 MySQL数据库的连接与关闭 468
18.2.2 创建新用户并授权 469
18.2.3 创建数据库 469
18.2.4 创建数据表 470
18.2.5 数据表内容的简单管理 471
18.3 小结 472
本章必须掌握的知识点 472
第19章 MySQL数据表的设计 473
19.1 数据表(Table) 473
19.2 数据值和列类型 474
19.2.1 数值类的数据列类型 474
19.2.2 字符串类的数据列类型 475
19.2.3 日期和时间类的数据列类型 476
19.2.4 NULL值 477
19.2.5 类型转换 477
19.3 数据字段属性 477
19.4 数据表对象管理 478
19.4.1 创建表(CREATE TABLE) 478
19.4.2 修改表(ALTER TABLE) 479
19.4.3 删除表(DROP TABLE) 480
19.5 数据表的类型及存储位置 481
19.5.1 MyISAM数据表 481
19.5.2 InnoDB数据表 481
19.5.3 如何选择InnoDB还是MyISAM
表类型 481
19.5.4 数据表的存储位置 482
19.6 数据表的默认字符集 482
19.6.1 字符集 483
19.6.2 字符集支持原理 483
19.6.3 创建数据对象时修改字符集 484
19.7 创建索引 484
19.7.1 主键索引(PRIMARY KEY) 484
19.7.2 唯一索引(UNIQUE) 485
19.7.3 常规索引(INDEX) 486
19.7.4 全文索引(FULLTEXT) 486
19.8 规范化 487
19.8.1 起点 487
19.8.2 第一范式 488
19.8.3 第二范式 489
19.8.4 第三范式 490
19.8.5 规范化理论 491
19.9 数据库的设计技巧 492
19.9.1 数据库的设计要求 492
19.9.2 命名的技巧 492
19.9.3 数据库具体设计工作中的技巧 493
19.10 小结 493
本章必须掌握的知识点 493
本章需要了解的内容 493
本章需要拓展的内容 493
第20章 SQL语句设计 494
20.1 操作数据表中的数据记录(DML) 494
20.1.1 使用INSERT语句向数据表中添加
数据 494
20.1.2 使用UPDATE语句更新数据表中已
存在的数据 495
20.1.3 使用DELETE语句删除数据表中不
需要的数据记录 496
20.2 通过DQL命令查询数据表中的数据 497
20.2.1 选择特定的字段 497
20.2.2 使用AS子句为字段取别名 498
20.2.3 DISTINCT关键字的使用 498
20.2.4 在SELECT语句中使用表达式的列 499
20.2.5 使用WHERE子句按条件检索 499
20.2.6 根据空值(NULL)确定检索条件 501
20.2.7 使用BETWEEN AND进行范围
比较查询 501
20.2.8 使用IN进行范围比对查询 501
20.2.9 使用LIKE进行模糊查询 501
20.2.10 多表查询(连接查询) 502
20.2.11 嵌套查询(子查询) 504
20.2.12 使用ORDER BY对查询结果排序 505
20.2.13 使用LIMIT限定结果行数 505
20.2.14 使用统计函数 506
20.2.15 使用GROUP BY对查询结果
分组 507
20.3 查询优化 508
20.4 小结 509
本章必须掌握的知识点 509
本章需要拓展的内容 509
本章的学习建议 509
第21章 PHP访问MySQL的扩展函数 510
21.1 PHP访问MySQL数据库服务器
的流程 510
21.2 在PHP脚本中连接MySQL服务器 512
21.2.1 在PHP程序中选择已创建的数据库 513
21.2.2 执行SQL命令 513
21.2.3 在PHP脚本中处理SELECT查询
结果集 515
21.3 设计完美分页类 517
21.3.1 需求分析 517
21.3.2 程序设计 517
21.3.3 完美分页类的代码实现 518
21.3.4 分页类的应用过程 522
21.4 管理books表实例 525
21.4.1 需求分析 525
21.4.2 程序设计 526
21.5 PHP的mysqli扩展介绍 533
21.5.1 启用mysqli扩展模块 533
21.5.2 mysqli扩展接口的应用概述 534
21.6 小结 535
本章必须掌握的知识点 535
本章需要了解的内容 535
本章需要拓展的内容 535
本章的学习建议 535
第22章 数据库抽象层PDO 536
22.1 PDO所支持的数据库 536
22.2 PDO的安装 537
22.3 创建PDO对象 538
22.3.1 以多种方式调用构造方法 539
22.3.2 PDO对象中的成员方法 541
22.4 使用PDO对象 542
22.4.1 调整PDO的行为属性 542
22.4.2 PDO处理PHP程序和数据库之间的
数据类型转换 542
22.4.3 PDO的错误处理模式 543
22.4.4 使用PDO执行SQL语句 544
22.5 PDO对预处理语句的支持 546
22.5.1 了解PDOStatement对象 546
22.5.2 准备语句 547
22.5.3 绑定参数 548
22.5.4 执行准备好的查询 549
22.5.5 获取数据 550
22.5.6 大数据对象的存取 554
22.6 PDO的事务处理 554
22.6.1 MySQL的事务处理 555
22.6.2 构建事务处理的应用程序 555
22.7 小结 557
本章必须掌握的知识点 557
本章需要了解的内容 557
本章需要拓展的内容 557
第5部分 PHP开发高级篇
第23章 MemCache管理与应用 559
23.1 MemCache概述 559
23.1.1 初识MemCache 559
23.1.2 MemCache在Web中的应用 560
23.2 memcached的安装及管理 562
23.2.1 Linux下安装MemCache软件 562
23.2.2 Windows下安装MemCache软件 562
23.2.3 memcached服务器的管理 563
23.3 使用Telnet作为memcached的客户端
管理 564
23.3.1 连接memcached服务器 564
23.3.2 基本的memcached客户端命令 564
23.3.3 查看当前memcached服务器的运行
状态信息 565
23.3.4 数据管理指令 565
23.4 PHP的memcached管理接口 566
23.4.1 安装PHP中的MemCache应用程序
扩展接口 567
23.4.2 MemCache应用程序扩展接口 568
23.4.3 MemCache的实例应用 573
23.5 memcached服务器的安全防护 574
23.6 小结 574
本章必须掌握的知识点 574
本章需要了解的内容 575
本章需要拓展的内容 575
第24章 会话控制 576
24.1 为什么要使用会话控制 576
24.2 会话跟踪的方式 577
24.3 Cookie的应用 577
24.3.1 Cookie概述 578
24.3.2 向客户端计算机中设置Cookie 578
24.3.3 在PHP脚本中读取Cookie的资料
内容 580
24.3.4 数组形态的Cookie应用 580
24.3.5 删除Cookie 581
24.3.6 基于Cookie的用户登录模块 581
24.4 Session的应用 583
24.4.1 Session概述 583
24.4.2 配置Session 584
24.4.3 Session的声明与使用 585
24.4.4 注册一个会话变量和读取Session 585
24.4.5 注销变量与销毁Session 586
24.4.6 Session的自动回收机制 587
24.4.7 传递Session ID 588
24.5 一个简单的邮件系统实例 591
24.5.1 为邮件系统准备数据 591
24.5.2 编码实现邮件系统 592
24.5.3 邮件系统执行说明 594
24.6 自定义Session处理方式 595
24.6.1 自定义Session的存储机制 595
24.6.2 使用数据库处理Session信息 598
24.6.3 使用memcached处理Session信息 601
24.7 小结 604
本章必须掌握的知识点 604
本章需要了解的内容 604
本章需要拓展的内容 604
第25章 PHP的CURL功能扩展模块 605
25.1 CURL功能模块介绍 605
25.2 PHP的CURL功能扩展模块基本
用法 606
25.3 CURL相关的功能选项 607
25.4 通过CURL扩展获取页面信息 609
25.5 通过CURL扩展用POST方法发送
数据 610
25.6 通过CURL扩展进行文件上传 612
25.7 通过CURL模拟登录并获取数据 614
25.8 小结 615
本章必须掌握的知识点 615
本章需要拓展的内容 616
第26章 PHP的模板引擎Smarty 617
26.1 什么是模板引擎 617
26.2 自定义模板引擎 619
26.2.1 自定义模板引擎类 619
26.2.2 使用自己的模板引擎 621
26.2.3 应用自定义模板引擎的示例分析 623
26.3 选择Smarty模板引擎 626
26.4 安装Smarty及初始化配置 627
26.4.1 安装Smarty 628
26.4.2 初始化Smarty类库的默认设置 628
26.4.3 第一个Smarty的简单示例 631
26.5 Smarty的基本应用 633
26.5.1 PHP程序员常用的和Smarty相关
的操作 634
26.5.2 模板设计时美工的常用操作 635
26.6 Smarty模板设计的基本语法 636
26.6.1 模板中的注释 636
26.6.2 模板中的变量应用 636
26.6.3 模板中的函数应用 639
26.6.4 忽略Smarty解析 641
26.7 Smarty模板中的变量应用 641
26.7.1 从配置文件中读取变量 642
26.7.2 在模板中使用保留变量 645
26.8 Smarty模板中的变量调解器 647
26.8.1 变量调解器函数的使用方式 647
26.8.2 Smarty默认提供的变量调解器 648
26.8.3 自定义变量调解器插件 650
26.9 Smarty模板中的自定义函数 652
26.9.1 为Smarty模板扩充函数插件 652
26.9.2 为Smarty模板扩充块函数插件 654
26.10 Smarty模板中的内置函数 654
26.10.1 变量声明 655
26.10.2 流程控制 656
26.10.3 声明和调用模板函数 659
26.10.4 数组遍历 660
26.10.5 Smarty提供的其他内置函数 665
26.11 Smarty的模板继承特性 666
26.11.1 使用{extends}函数实现模板继承 666
26.11.2 在子模板中覆盖父模板中的部分
内容区域 667
26.11.3 合并子模板和父模板的{block}
标签内容 668
26.12 Smarty的缓存控制 669
26.12.1 在Smarty中控制缓存 670
26.12.2 每个模板多个缓存 671
26.12.3 为缓存实例消除处理开销 671
26.12.4 清除缓存 672
26.12.5 关闭局部缓存 673
26.13 小结 673
本章必须掌握的知识点 673
本章需要了解的内容 673
本章需要拓展的内容 673
第27章 MVC模式与PHP框架 674
27.1 MVC模式在Web中的应用 674
27.1.1 MVC模式的工作原理 674
27.1.2 MVC模式的优缺点 676
27.2 PHP开发框架 676
27.2.1 什么是框架 677
27.2.2 为什么要用框架 677
27.2.3 框架和MVC设计模式的关系 678
27.2.4 比较流行的PHP框架 679
27.3 划分模块和操作 680
27.3.1 为项目划分模块 680
27.3.2 为模块设置操作 681
27.4 小结 681
第28章 超轻量级PHP框架BroPHP 2.0 682
28.1 BroPHP框架概述 682
28.1.1 系统特点 683
28.1.2 环境要求 683
28.1.3 BroPHP框架源码的目录结构 684
28.2 单一入口 684
基于BroPHP框架的单一入口编写规则 684
28.3 部署项目应用目录 685
28.3.1 项目推荐的部署方式 686
28.3.2 URL访问 687
28.4 BroPHP框架的基本设置 689
28.4.1 默认开启 689
28.4.2 配置文件 690
28.4.3 内置函数 691
28.5 声明控制器(Control) 692
28.5.1 控制器的声明(模块) 692
28.5.2 操作的声明 693
28.5.3 页面跳转 694
28.5.4 重定向 695
28.6 设计视图(View) 696
28.6.1 视图与控制器之间的交互 696
28.6.2 切换模板风格 697
28.6.3 模板文件的声明规则 697
28.6.4 display()的新用法 698
28.6.5 模板中的几个常用变量应用 698
28.6.6 在PHP程序中定义资源位置 699
28.7 应用模型(Model) 699
28.7.1 BroPHP数据库操作接口的特性 700
28.7.2 切换数据库驱动 700
28.7.3 声明和实例化Model 701
28.7.4 数据库的统一操作接口 704
28.8 自动验证 721
28.9 缓存设置 724
28.9.1 基于memcached缓存设置 724
28.9.2 基于Smarty的缓存机制 724
28.10 调试模式 725
28.11 内置扩展类库 726
28.11.1 分页类Page 726
28.11.2 验证码类Vcode 728
28.11.3 图像处理类Image 729
28.11.4 文件上传类FileUpload 730
28.11.5 BroPHP 2.0新增加的文件缓存类
FileCache 731
28.11.6 BroPHP 2.0新增加的无限分类处理
类CatTree 733
28.12 自定义功能扩展 736
28.12.1 自定义扩展类库 736
28.12.2 自定义扩展函数库 736
28.13 BroPHP 2.0数据库分离部署方案 737
28.13.1 数据分离方法 737
28.13.2 数据库连接配置 737
28.13.3 数据模型配置 738
28.14 BroPHP 2.0资源分布式部署 738
28.14.1 网站资源分布式部署方法 739
28.14.2 部署上传的文件资源 739
28.14.3 部署缩略图的资源位置 740
28.14.4 将公共资源和单个应用中的资源
分离部署 740
28.14.5 将临时和缓存文件分离部署 741
28.15 BroPHP 2.0主程序与Web目录分离 741
28.16 小结 742
本章必须掌握的知识点 742
本章需要了解的内容 742
第6部分 项目开发篇
第29章 B/S结构软件开发流程 744
29.1 软件开发过程的划分 744
29.2 需求开发 745
29.2.1 需求分析流程 746
29.2.2 需求分析说明 746
29.2.3 输出 747
29.3 系统设计 747
29.3.1 系统设计流程 748
29.3.2 系统设计说明 748
29.4 编码测试 750
29.4.1 编码与测试流程 750
29.4.2 编码说明 751
29.4.3 结果测试说明 752
29.5 试运行 754
29.5.1 软件试运行流程 754
29.5.2 软件试运行说明 755
29.6 实施 755
29.6.1 软件实施流程 756
29.6.2 软件实施说明 756
29.7 验收 757
29.7.1 软件验收流程 757
29.7.2 软件验收说明 758
29.7.3 验收标准 759
29.8 服务与维护 759
29.8.1 责任人 759
29.8.2 收集信息 759
29.8.3 维护分析 760
29.8.4 软件维护 760
29.8.5 改进 760
29.8.6 输出 760
29.9 项目管理 760
29.9.1 软件项目的计划 761
29.9.2 软件项目的组织 763
29.9.3 项目小组组织形式 763
29.10 项目参考 764
第30章 电子商城系统需求分析说明书 765
30.1 文档介绍 765
30.1.1 编写说明 766
30.1.2 项目背景 766
30.1.3 读者对象 766
30.1.4 参考资料 766
30.1.5 术语与缩写解释 767
30.2 任务概述 767
30.2.1 产品的描述 767
30.2.2 系统目标 768
30.2.3 系统功能结构 769
30.2.4 系统流程图 769
30.3 业务描述 773
30.3.1 后台登录管理 774
30.3.2 后台操作界面管理 775
30.3.3 商品列表管理 777
30.3.4 前台首页管理 780
30.3.5 前台商品管理 782
30.3.6 前台购物管理 785
30.4 系统运行环境 788
30.4.1 硬件环境 788
30.4.2 软件环境 789
30.5 需求设计评审 789
第31章 数据库设计说明书 790
31.1 引言 790
31.1.1 编写目的 790
31.1.2 背景 791
31.1.3 定义 791
31.1.4 参考文献 791
31.2 外部设计 791
31.2.1 标识符和状态 792
31.2.2 使用它的程序 792
31.2.3 约定 792
31.2.4 支持软件 792
31.3 结构设计 792
概念结构设计 793
31.4 逻辑结构设计 801
31.4.1 E-R图向关系模型的转化 801
31.4.2 确定关系模式 801
31.4.3 消除冗余 802
31.5 物理结构设计 802
31.5.1 设计数据表结构 803
31.5.2 创建数据表 808
31.5.3 数据表记录的输入 813
31.6 安全保密设计 813
31.6.1 完整性 813
31.6.2 数据库设计的其他问题 814
第32章 程序设计说明书 815
32.1 引言 815
32.1.1 编写目的 815
32.1.2 背景 816
32.1.3 定义 816
32.1.4 使用技术 816
32.1.5 参考文献 816
32.2 系统的结构 816
32.2.1 项目的目录结构 817
32.2.2 模块结构 817
32.2.3 程序结构 818
32.3 用户管理模块设计说明 822
32.3.1 功能 822
32.3.2 流程逻辑 822
32.3.3 接口 823
32.3.4 存储分配 823
32.3.5 注释设计 823
32.3.6 限制条件 823
32.3.7 测试计划 824
32.3.8 尚未解决的问题 824
32.3.9 获取添加用户的界面操作add() 824
32.3.10 用户数据入库的操作insert() 825
32.3.11 查询用户列表操作index() 826
32.3.12 获取修改用户的界面操作mod() 827
32.3.13 用户数据修改的操作update() 828
32.3.14 删除用户操作del() 828
附 录
附录A 编码规范 831
A.1 绪论 831
A.1.1 适用范围 831
A.1.2 目标 831
A.1.3 开发工具 832
A.2 PHP的文件格式 832
A.2.1 PHP开始和结束标记 832
A.2.2 注释规范 833
A.2.3 空行和空白 833
A.2.4 字符串的使用 834
A.2.5 命名原则 835
A.2.6 语言结构 837
A.2.7 其他规范细节 840
A.3 MySQL设计规范 841
A.3.1 数据表的设计 841
A.3.2 索引设计原则 842
A.3.3 SQL语句设计 843
A.4 模板设计 843
附录B PHP的安全和优化 845
B.1 网站安全Security 845
B.1.1 安全配置PHP 846
B.1.2 隐藏配置细节 849
B.1.3 隐藏敏感数据 850
B.1.4 清理用户数据 851
B.1.5 数据加密 854
B.2 网站优化Optimize 854
B.2.1 PHP脚本级优化 854
B.2.2 使用代码优化工具 856
B.2.3 缓存加速 857
B.2.4 HTTP加速 857
B.2.5 启用GZIP内容压缩 857
附录C PHP 5.3~5.6新特性 858
C.1 PHP 5.3中的新特性 858
C.2 PHP 5.4中的新特性 859
C.2.1 PHP 5.4中其他值得注意的改变 859
C.2.2 PHP 5.4中其他改动和特性 860
C.3 PHP 5.5中的新特性 860
C.4 PHP 5.6中的新特性 861
前言/序言
跟兄弟连学PHP
《跟兄弟连学PHP》即畅销书《细说PHP(第2版)》的全新升级版,是兄弟连对开源领域的重要贡献之一,相信本书会延续前两版的火爆,成为大家学习PHP的好帮手。
我是兄弟连IT教育(itxdl.cn)的创始人李超,兄弟连是我在2006年年底创办的,到现在已经是第9个年头了。兄弟连是国内管理最严格的IT学校之一,也是国内最大的PHP培训机构之一。
2001年以前,我没考上高中,19岁做了一名铁路工人,对计算机知识一窍不通,敲键盘二指禅,不知道硬盘为何物,看片从来都是用光驱,甚至不知道还能复制到硬盘上。2002年,我成为大连交通大学计算机系(成教)的一名普通学员,逐步意识到所学的课程跟企业实践脱节,也跟很多大学生一样迷茫过。2003年,赶上了让全国人民至今心有余悸的“非典”,加上对前途的迷茫,那时的我很痛苦;一个偶然的机会我知道了Linux、PHP等开源软件,并坚信那是未来的方向。自学一些时日进度很慢,找到一家培训机构交了很多学费,学习那些我看好的开源软件课程。培训期间,机构和讲师的表现都不尽如人意,只能自身更加努力,毕业后在大连一家互联网公司做程序员。
2004年8月,怀揣1000元来到首都北京,只因我有一颗不安分的心……一开始做技术支持,工作努力、吃苦耐劳加上自我学习意识强,很快成了一名IT讲师。一路走来陆续从事过讲师、讲师经理、教学主管、教学总监等职务,真正从业内人士的角度透彻地了解到了培训行业的秘密。联想到在大连参加培训时的一些感触,我明白为什么很多人都不看好培训机构,因为这个行业确实有一些机构在追逐商业利益的同时迷失了自我,我发誓要做一家靠谱的培训机构。
2006年年底,我凭着无知者无畏的勇气,创办了“兄弟连”,创业的初衷是为了让更多的学员知道,培训机构也是可以真正为学员着想的。经过近4年的摸索,兄弟连在教学上积累了良好的口碑,学员的就业薪资也屡创新高。2010年年底,兄弟连在内部深度调整的同时,在国内首推“零费用学习,毕业后还款”模式,一炮打响,之后的兄弟连进入了发展的快车道。
2011—2013年的兄弟连迅速壮大,其间兄弟连人对教育、对培训的理解更加深刻,总结出兄弟连的核心竞争力:教学靠谱,变态严管,职业素养课贯穿。如今的兄弟连,教学质量好不好学员说了算,定期的讲师评估、学员打分,重点考核备课是否充分、激情授课、幽默/励志教学……教学严管和职业素养课让学员把学习变成习惯,掌握技术的同时学会处事、学会做人。
在巩固PHP领导地位的同时,兄弟连现已开设Android、iOS、手游、UI、Linux云计算、H5前端等专业,陆续会有更多的新学科推出。2014年3月1日,兄弟连云课堂正式上线,旨在帮助更多的编程爱好者实现自己的IT梦想。现注册学员已近10万人,拥有3000集以上视频。
兄弟连IT目前已经在北京、上海、广州、郑州、济南、沈阳、苏州、扬州8座城市拥有10处校区,每年有数十万名学员受益于兄弟连教育的职业培训、教学视频、网络直播课、大学讲座。
“兄弟”
一开始的理解是,程序员大都是男性,雄性的天地,写程序要团队开发,讲求配合协作,更加注重兄弟间的默契。后来发现来兄弟连学习的不全是男性,很多女孩子骨子里的兄弟情结更加浓厚,她们甚至比男人更懂得兄弟的含义。在兄弟连,兄弟的含义就是:是陪你一起学到深夜,饿了分一桶方便面的人;是你游戏玩得高兴时,提醒你抓紧时间学习的人;是你学习遇到困难时,传授你学习方法帮你分析问题的人;是他去找工作,跟人家推荐你也过去试试的人……
“连”
就是连队,兄弟连需要更加严厉的管理,因为我们培养的是IT特种兵,把本来基础好的学员培养出来那不叫本事,把那些对IT有兴趣却底子薄的人变成编程高手才算能耐!这更加需要团队,而不仅仅是老师的帮助。在兄弟连,这样的例子比比皆是。
时至今日,兄弟连已经走过了9个年头,这条路虽历尽艰辛,但我们痴心不改。我们就是要让学员们知道:培训机构也可以是靠谱的!在兄弟连,你可以找到自我、重拾自信;在兄弟连,你会每天渴求成长,学到深夜;在兄弟连,你会把学习当成一种习惯;在兄弟连,你有更多的兄弟姐妹;在兄弟连,有陪你一起熬夜的老师;在兄弟连,你会被“狠狠”地爱着……
兄弟连创始人 李超
2015年11月
前言
PREFACE
PHP是一种开源免费的开发语言,具有程序开发速度快、运行快、技术本身学习快等快捷性的特点,无疑是当今Web开发中最佳的编程语言。与同类语言JSP和ASP相比,PHP具有简易性、高安全性和执行灵活等优点,使用PHP开发的Web项目,在软件方面的投资成本较低、运行稳定。因此现在越来越多的供应商、用户和企业投资者日益认识到,使用PHP开发的各种商业应用和协作构建各种网络应用程序,变得更加具有竞争力,更加吸引客户。无论是从性能、质量还是价格上,PHP都将成为企业和政府信息化所必须考虑的开发语言。
本书包括六大部分+附录,作为PHP学习的七个阶段。从了解Web开发构件开始,包含Web前端技术、数据库操作,并以PHP为主,到可以完成一个标准化高质量的项目为止。所有内容皆为当今Web项目开发必用的内容,涵盖了PHP的绝大多数知识点,对于某一方面的介绍再从多角度进行延伸。本书全部技术点以PHP 5.3以上最流行的版本为主,详细地介绍了PHP及与其相关的Web技术,可以帮助读者在较短的时间内熟悉并掌握比较实用的PHP技术。其中包括当前比较流行的前端HTML5、PHP的语言语法、面向对象技术、数据库抽象层PDO和Smarty 3.0模板引擎、学习型PHP框架BroPHP 2.0等主流技术,实用性非常强。本书所涉及的实例全部以特定的应用为基础,读者在学习和工作过程中,可以直接应用本书给出的一些独立模块和编程思想。
本书编写的宗旨是让读者能拥有一本PHP方面的学习和开发使用的最好书籍,章节虽然不是很多,但对所罗列出的每个知识点都进行了细化和延伸,并力求讲解到位,让读者可以轻松地读懂。所介绍的知识点是不需要借助其他任何书籍进行辅助和补充的。而且对于每个知识点都有对应且翔实的可运行的代码配套,对所有实例代码都附有详细注释、说明及运行效果图。在大部分章节的最后一节都结合一个实用的案例,把该章中涉及的零散知识点串在一起进行分析总结,步骤详细,可操作性强。另外,在每个章节的最后还为读者安排了大量的和本章知识点配套的自测试题(附加在光盘中),能更好地帮助读者掌握理论知识点,提高实际编程能力,寓学于练。本书最后呈现了一套完整的项目文档和源码,对读者不管是学习还是开发,极具参考和使用价值,让读者心领神会,进入到开发的实战中。
本书是畅销书《细说PHP(第2版)》的全新升级版。《细说PHP(第2版)》在刚发行仅三个月时,就被国内最大IT门户的图书评选中,被评为全年最受读者欢迎的原创图书奖。距离《细说PHP(第2版)》发行整三年的时间,在第2版发行后的一年笔者就开始筹划改版。根据PHP语言的升级和当前Web开发的新特性,以及企业当前的应用,还有读者的反馈和调研,增加了一些新内容,抛弃了一些过时技术,所有实例都经过了反复的测试,每一句话都进行了反复的推敲。为本版筹划的几个重要事件如下:
(1)根据第1版和第2版读者的反馈,在本次改版中对大部分内容进行了重新整理和优化,更改约1/3的内容。
(2)用一年时间为本书重新录制了长达8000分钟的真人出镜的视频教程,与本版书完全配套,全面覆盖了书中的每个知识点。
(3)根据Web发展的需求,为前端部分加入HTML5、CSS3和响应式Web布局等内容。
(4)将PHP所有章节的内容都升级到当前最流行的PHP 5.3以上版本。
(5)专门为本书开发的学习型PHP框架(BroPHP),这是目前国内唯一一个学习型的专用PHP框架。并用半年时间通过了几百个项目的测试和应用,已经非常成熟和稳定,本书也将其升级为2.0版本。
(6)书中的每个应用实例都做到了最优,可以直接应用在实际项目开发中。
(7)结合多家互联网公司的项目开发资料,总结出了一份标准的项目开发流程和几个重要的标准化项目开发文档,并将上一版书中项目CMS系统改为本书中非常实用的电子商城系统。
超强资源配套学习,跟踪服务帮助读者提高
在本书所附的DVD光盘中,附书中所有开发实例的源代码,读者在开发中可以直接使用。本书部分章节及课后习题、附录由于书的容量限制,也附加到了光盘中。光盘中还赠送配套的教学视频,长达8000分钟以上(由于光盘空间有限,部分视频需要读者到猿代码上观看学习:www.ydma.cn)。通过参考本书再结合视频教学光盘,可以加快读者对知识点的掌握,加快学习进度。
为了帮助读者学习到更多的PHP技术,在兄弟连论坛(bbs.itxdl.cn)还可以下载常用的技术手册、安装LAMP环境所需要的开源软件和本书每章后面为读者安排的大量自测题配套答案。笔者及“兄弟连IT教育”的多名讲师和技术人员也会及时回答读者提问,与读者进行在线技术交流,并为读者提供各类技术文章,帮助读者提高开发水平,解决读者在开发中遇到的疑难问题。
本书适合读者
接受PHP培训的学员。
Web开发爱好者。
网站维护及管理人员。
初级或专业的网站开发人员。
大中专院校的教师及培训中心的讲师。
进行毕业设计和对PHP感兴趣的学生。
从事ASP或JSP而想转向PHP开发的程序员。
本书由高洛峰主笔编著,参加编写及审校工作的人员有李明、胡泊、张学金、郇涛、戴雯慧、潘红、余飞、鲁书喜、青梅、滕吉鹏、陈永庆、孙丰伟、黄煜栋、鲁大林、孙欢、王石光、张春英、王伟斌、陈侠义、邹贤芳、姚鸿坤,在此一并表示感谢。
2015年11月