目 录
第一篇 预备级软件工程师
第1章 新纪元 4
1.1 系列丛书的特点 5
1.2 软件工程师成长历程 5
1.2.1 初级阶段 6
1.2.2 中级阶段 6
1.2.3 高级阶段 7
1.3 优秀的编程习惯 7
1.4 学习笔记 10
第2章 PHP软件开发环境的搭建(XAMPP) 11
2.1 PHP的优势和背景 12
2.1.1 什么是PHP 12
2.1.2 为什么要学习PHP语言 12
2.1.3 PHP语言的优势 13
2.1.4 PHP能做什么 13
2.2 搭建PHP开发环境 15
2.2.1 下载Windows平台下的XAMPP 15
2.2.2 安装XAMPP 16
2.2.3 配置XAMPP 16
2.2.4 XAMPP控制面板 20
2.3 XAMPP启动及数据库管理 20
2.3.1 启动Apache和MySql 20
2.3.2 XAMPP主页面 20
2.3.3 网站系统状态检查情况 21
2.3.4 查看PHP版本与服务器配置信息 22
2.3.5 数据库管理工具phpMyAdmin 23
2.4 XAMPP安装与使用过程遇到的问题及解决方案 23
2.4.1 XAMPP无法正常启动 23
2.4.2 我写的程序文件应该放在哪里 24
2.4.3 我如何配置默认的开始页面 24
2.4.4 运行XAMPP时我需要连接网络吗 25
2.4.5 XAMPP安装目录各自有什么功能 25
2.4.6 在哪里能找到更多信息 25
2.4.7 如何启动或停止XAMPP系统服务 25
2.5 读书笔记 26
第3章 软件工程师思维培养 27
3.1 正式编程前的准备工作 28
3.1.1 确定写代码的位置 28
3.1.2 确定访问程序的URL 29
3.2 “=”与“==”的区别 29
3.3 编程三招式(顺序、选择与循环) 30
3.3.1 顺序式编程 30
3.3.2 选择式编程 31
3.3.3 循环式编程 32
3.4 面向对象编程思维培养 33
3.4.1 软件危机 33
3.4.2 万事万物皆对象 34
3.4.3 对抽象、继承、多态的理解 34
3.5 数据库管理思维培养 35
3.5.1 互联网是运行在Oracle数据库上的 35
3.5.2 卡片、文件、数据库管理 35
3.5.3 层次、网状、关系数据库 35
3.6 培养编程思维的经典代码 36
3.6.1 编写自定义函数求一个数的绝对值 36
3.6.2 编程求0~100之间全部偶数之和 37
3.6.3 编程打印九九乘法表 38
3.6.4 编程求解Fibonacci数列问题 39
3.6.5 编程求解所有水仙花数 40
3.6.6 编程求1!+2!+3!+…+10!之和 40
3.6.7 编程求解中国古代算术百钱买百鸡问题 41
3.7 读书笔记 43
第二篇 初级软件工程师
第4章 开发环境配置 47
4.1 总体说明 48
4.2 Apache简介与配置 48
4.2.1 Apache简介 48
4.2.2 Apache全局环境配置 49
4.2.3 Apache主服务器配置 50
4.3 PHP配置 54
4.3.1 语言选项设置 54
4.3.2 资源设置 56
4.3.3 错误控制和登记 56
4.3.4 数据控制 56
4.3.5 目录和路径 57
4.3.6 文件上传 57
4.3.7 动态扩展 57
4.3.8 模块设置 58
4.3.9 其他相关设置 59
4.4 MySQL配置 61
4.4.1 客户端设置 61
4.4.2 服务器端设置 61
4.5 读书笔记 62
第5章 PHP基础知识 63
5.1 PHP语法简述 64
5.1.1 PHP程序起点 64
5.1.2 PHP注释 64
5.1.3 PHP文件包含 65
5.2 PHP的数据类型 66
5.2.1 PHP常量与变量 66
5.2.2 整型 68
5.2.3 浮点型 69
5.2.4 布尔型与NULL型 69
5.2.5 字符串类型 71
5.2.6 数组 72
5.2.7 对象 73
5.2.8 数据类型的转换 73
5.3 运算符与关键字 75
5.3.1 算术运算符 75
5.3.2 字符串运算符 76
5.3.3 赋值运算符 76
5.3.4 比较运算符 77
5.3.5 逻辑运算符 78
5.3.6 位运算符 78
5.3.7 自增与自减运算符 79
5.3.8 运算符优先级 81
5.3.9 PHP中的关键字 82
5.4 各种变量应用举例 83
5.4.1 预定义变量 83
5.4.2 变量的作用域与生存周期 84
5.4.3 静态变量 86
5.4.4 动态变量 87
5.4.5 外部变量 87
5.5 程序的三种控制结构 88
5.5.1 顺序结构 88
5.5.2 选择(分支)结构 88
5.5.3 循环结构 89
5.6 PHP常用函数 89
5.6.1 字符串string 函数 89
5.6.2 数组array函数 91
5.6.3 数学Math函数 93
5.6.4 日期时间Date / Time 函数 94
5.7 读书笔记 95
第6章 MySQL基础知识 96
6.1 MySQL简介 97
6.1.1 MySQL概述 97
6.1.2 MySQL的特性 97
6.1.3 MySQL的应用 97
6.1.4 MySQL管理 98
6.1.5 MySQL存储引擎 98
6.1.6 MySQL最常见的应用架构及历史版本 99
6.2 创建数据库与表 100
6.2.1 在phpMyAdmin中创建数据库mytest示例 100
6.2.2 在phpMyAdmin中创建表employees示例 100
6.2.3 在phpMyAdmin中创建表tb_school(学校表)示例 105
6.2.4 在phpMyAdmin中创建表tb_student(学生表)示例 106
6.2.5 在phpMyAdmin中创建表tb_class(班级表)示例 107
6.3 数据库操纵语言 108
6.3.1 SELECT句法 108
6.3.2 JOIN句法 113
6.3.3 UNION句法 116
6.3.4 HANDLER 句法 117
6.3.5 INSERT句法 118
6.3.6 INSERT…SELECT句法 120
6.3.7 INSERT DELAYED句法 121
6.3.8 UPDATE句法 123
6.3.9 DELETE句法 124
6.3.10 TRUNCATE句法 126
6.3.11 REPLACE句法 126
6.3.12 LOAD DATA INFILE 句法 128
6.3.13 DO句法 134
6.4 MySQL在PHP 5中的应用 135
6.4.1 在XAMPP下测试运行新建的PHP脚本 137
6.4.2 在XAMPP下测试运行连接MySQL数据库的PHP脚本 138
6.4.3 PHP中的MySQL常用函数总结 139
6.5 PHPMyAdmin中对MySQL数据库的备份与恢复处理 147
6.5.1 数据库的备份处理 147
6.5.2 数据库的恢复处理 149
6.5.3 数据库表的XML格式备份处理 152
6.5.4 数据库表的CSV格式的表备份 154
6.5.5 数据库表的SQL格式的表备份 155
6.5.6 已经删除的数据库表的恢复处理 156
6.5.7 已经删除的数据库表记录的恢复处理 157
6.6 读书笔记 159
第三篇 中级工程师
第7章 PHP进阶知识 163
7.1 PHP中的Cookie技术 164
7.1.1 设置Cookie 164
7.1.2 读取Cookie 165
7.1.3 删除Cookie 165
7.1.4 常见问题的解决方法 165
7.1.5 Cookie工作机理 165
7.2 PHP中的Session技术 166
7.2.1 通过Cookie传递sessionID 166
7.2.2 通过URL传送sessionID 167
7.2.3 Session基本用法实例 167
7.2.4 使用Session函数控制页面缓存 168
7.2.5 删除Session的方法 168
7.2.6 Session在PHP大型Web应用中的使用 168
7.2.7 PHP常用Session函数 169
7.2.8 Session安全问题 169
7.3 PHP中的电子邮件发送技术 170
7.3.1 mail()函数的使用 170
7.3.2 socket方式发送原理 170
7.3.3 电子邮件发送实例 171
7.4 PHP中实现文件上传实例 178
7.5 PHP模板生成静态HTML文件 181
7.5.1 工作原理 181
7.5.2 生成静态HTML页面实例 182
7.6 PHP+MySQL分页显示实例分析 183
7.6.1 分页程序的原理 183
7.6.2 PHP实现分页功能实例 183
7.7 通过用户注册实例说明PHP网页编程的组织 186
7.7.1 目标注册界面UI 186
7.7.2 完成UI界面HTML代码 186
7.7.3 美化界面的CSS代码 187
7.7.4 客户端检查JavaScript代码 189
7.7.5 功能实现PHP代码 190
7.7.6 PHP安全处理对非注册页面访问保护 191
7.8 PHP实现CSV 文件格式导出 192
7.9 PHP实现Excel文件格式导出 192
7.10 PHP 5与XML相关技术 193
7.10.1 PHP 5中XML新特性 193
7.10.2 SAX 194
7.10.3 DOM 194
7.10.4 XPath 196
7.10.5 HTML 197
7.10.6 SimpleXML 198
7.10.7 XSLT 199
7.11 PHP站内搜索技术 201
7.11.1 SQL语句中的模糊查找 202
7.11.2 多个关键字搜索的实现设计 203
7.11.3 替换关键字高亮显示 203
7.12 在PHP中开发自己的UBB代码 204
7.12.1 什么是UBB代码 204
7.12.2 UBB代码运行过程 205
7.12.3 UBB代码功能详解 205
7.12.4 简单的UBB代码 208
7.12.5 UBB编辑器jtbcEditor介绍 209
7.13 读书笔记 210
第8章 PHP异常处理 211
8.1 异常的概念 212
8.2 异常的基本使用 212
8.3 try、throw 和 catch 213
8.4 创建一个自定义的exception类 214
8.5 处理多个异常 215
8.6 重新抛出异常 216
8.7 设置顶层异常处理器 217
8.8 异常处理的规则 218
8.9 读书笔记 219
第9章 用PHP CMS自助搭建网站 220
9.1 phpwind简介 221
9.1.1 phpwind的来历 221
9.1.2 phpwind的发展历程 221
9.1.3 phpwind的主要功能 221
9.2 phpwind的安装 222
9.2.1 安装要求 222
9.2.2 安装之前的准备工作 222
9.2.3 正式安装phpwind 223
9.3 phpwind v8.0后台设置 225
9.3.1 创始人管理 227
9.3.2 后台权限管理 228
9.3.3 核心设置 229
9.3.4 常规设置 229
9.3.5 用户注册控制 233
9.3.6 内容版块管理 236
9.4 phpwind搭建完成的网站 247
9.4.1 论坛模式 247
9.4.2 管理员访问网站界面 248
9.4.3 普通用户访问网站界面 252
9.5 读书笔记 256
第10章 PHP大型网站开发实践 257
10.1 大型网站开发前准备 258
10.2 网站目标定位与功能需求 258
10.3 Oricity产品规格说明书 259
10.3.1 网站基本信息 259
10.3.2 网站主页界面设计 259
10.3.3 网站登录与注册设计 262
10.3.4 我的城市空间 265
10.3.5 我的日历 265
10.3.6 我的朋友 265
10.3.7 我的相册 268
10.3.8 站内短信 271
10.3.9 手机短信 272
10.3.10 我的账户 273
10.3.11 我的收藏夹 277
10.3.12 退出个人空间 279
10.3.13 活动发布 279
10.3.14 活动海报 280
10.3.15 注册与批准活动 286
10.3.16 都市日历 289
10.3.17 都市论坛 289
10.3.18 都市相册 291
10.3.19 关于城市空间 292
10.4 Oricity测试计划 292
10.4.1 测试目的 292
10.4.2 测试背景 292
10.4.3 测试范围 292
10.5 Oricity开发设计文档 294
10.5.1 日历模块(Calendar Module) 294
10.5.2 活动模块(Event Module) 298
10.6 读书笔记 305
附录A HTML 306
A.1 HTML编辑工具 307
A.2 读者如何参与实践 307
A.3 HTML语法教学 309
A.3.1 网页架构标记 309
A.3.2 排版标记 311
A.3.3 字体标记 314
A.3.4 清单标记 316
A.3.5 表格标记 318
A.3.6 图形标记 321
A.3.7 表单标记 324
A.3.8 链接标记 329
A.3.9 框架标记 329
A.3.10 多媒体标记 333
A.3.11 跑马灯标记 334
A.3.12 特殊字符 335
A.4 学习笔记 336
附录B JavaScript 337
B.1 JavaScript特点及作用 338
B.2 JavaScript基本语法 340
B.2.1 基本数据结构 340
B.2.2 运算符和表达式 342
B.2.3 控制结构和循环 345
B.3 window对象 349
B.3.1 window对象的属性 349
B.3.2 window对象的方法 351
B.4 document对象 355
B.4.1 document对象简介 355
B.4.2 document对象的属性 355
B.4.3 document对象的方法 356
B.5 文本对象 357
B.5.1 文本对象属性 357
B.5.2 文本对象方法 359
B.6 按钮对象 362
B.6.1 button、submit、reset对象 362
B.6.2 复选框对象 363
B.6.3 radio对象 363
B.7 location对象 365
B.7.1 hash属性 365
B.7.2 href属性 366
B.7.3 pathname属性 366
B.7.4 protocol属性 367
B.8 history对象 367
B.9 字符串对象 368
B.9.1 转义字符 368
B.9.2 字符串对象的属性 369
B.9.3 字符串对象的方法 369
B.10 日期对象 372
B.11 数学对象 378
B.11.1 math对象的属性 378
B.11.2 math对象的方法 379
B.12 数组对象 382
B.12.1 数组对象的创建 382
B.12.2 数组对象的扩充 383
B.13 读书笔记 384
附录C CSS和XML 385
C.1 CSS 386
C.1.1 什么是CSS 386
C.1.2 CSS的历史 386
C.1.3 使用CSS的优点 386
C.1.4 CSS样式解决了一个普遍的问题 387
C.1.5 使用CSS之前 387
C.1.6 如何将样式表加入到网页 388
C.1.7 CSS的语法 390
C.2 XML 395
C.2.1 XML简介 395
C.2.2 XML历史 396
C.2.3 XML作用 396
C.2.4 XML与HTML的主要差异 397
C.2.5 一个XML文档实例 398
C.2.6 XML文档形成一种树结构 398
C.2.7 XML语法规则 399
C.3 读书笔记 401
附录D PHP基础知识汇总 402
D.1 PHP变量 402
D.1.1 PHP变量的命名 402
D.1.2 如何声明变量 402
D.1.3 判断变量是否设置 402
D.1.4 如何定义常量 402
D.2 PHP数据类型 402
D.2.1 变量的数据类型 402
D.2.2 运算符 403
D.3 PHP流程控制语句 403
D.3.1 分支结构 403
D.3.2 多分支结构 404
D.3.3 循环结构 404
D.4 PHP数组 405
D.4.1 数组 405
D.4.2 数组初始化 405
D.4.3 使用array 函数 405
D.4.4 数组的应用 405
D.5 PHP函数 406
D.5.1 函数 406
D.5.2 内置函数 407
D.5.3 用户自定义函数 408
D.5.4 变量函数 409
D.5.5 变量的作用域 410
D.5.6 日期和时间的处理 411
D.6 PHP正则表达式 411
D.6.1 正则表达式 411
D.6.2 正则表达式的元字符 412
D.6.3 匹配正则表达式模式 412
D.6.4 正则表达式中的特殊字符 412
D.6.5 预定义字符和字符类 414
D.7 PHP 字符串 414
D.7.1 格式化字符串 414
D.7.2 HTML 文本格式输出 415
D.7.3 和数据库相关的操作 415
D.7.4 字符串的连接和分割 416
D.7.5 字符串比较 417
D.7.6 字符串查找 417
D.7.7 定位字符串 418
D.7.8 字符串替换 418
D.8 PHP表单的处理 419
D.8.1 表单提交的方式 419
D.8.2 可取值的表单元素 419
D.8.3 FILE格式 419
D.8.4 URL编码解码函数 421
D.8.5 $_SESSION["session_name"]在多个页面之间传递值 421
D.9 PHP文件操作 421
D.9.1 判断文件或目录是否存在 421
D.9.2 打开文件 421
D.9.3 写文件 422
D.9.4 关闭文件 422
D.9.5 读取一行数据 422
D.9.6 读取整个文件 423
D.9.7 取文件大小 423
D.9.8 删除文件 423
D.9.9 创建目录 423
D.9.10 删除目录 424
D.9.11 取得文件名 424
D.9.12 获取文件路径信息 424
D.9.13 取绝对路径 424
D.9.14 复制文件 425
D.9.15 判断是否是目录 425
D.9.16 打开目录 425
D.9.17 读取目录 425
D.9.18 关闭目录 426
D.10 PHP图形处理 426
D.11 PHP数据库编程 429
D.11.1 PHP连接数据 429
D.11.2 操作数据库 430
D.11.3 Cookie的使用 430
D.11.4 Session的使用 431
D.12 PHP 的面向对象编程 431
D.12.1 面向对象的概念 431
D.12.2 类、属性和方法 432
D.12.3 构造函数 433
D.12.4 类的实例化 433
D.12.5 使用类的属性和方法 433
D.12.6 类的访问控制符 433
D.12.7 面向对象的几个常见概念 434
D.12.8 几个常见的运算符和关键字 436
D.13 MySQL数据库基础 437
D.13.1 数据库的安装 437
D.13.2 数据库的登录 437
D.13.3 MySQL权限管理 437
D.13.4 创建新用户 437
D.13.5 删除用户权限 438
D.13.6 显示所有用户 438
D.13.7 创建数据库 438
D.13.8 删除数据库 438
D.13.9 创建表 439
D.13.10 删除表 439
D.13.11 数值类型 439
D.13.12 日期和时间类型 440
D.13.13 TEXT和BLOB类型 440
D.13.14 查看数据库 440
D.13.15 使用数据库 441
D.13.16 更新内容 442
D.13.17 删除记录 442
附录E 作者简介 443
附录F 实践者简介 445
参考文献 449
??
??
??
??
软件开发工程师成长之路——PHP网站开发实践指南(基础篇)
目录
XX
XIX