在近几年中,PHP已经发展成为世界上最为流行的Web平台,它运行在全球超过1/3的Web服务器上。PHP的发展不仅是数量上的,也是质量上的。越来越多的公司,包括全球500强榜上的公司都依靠PHP来运行它们的商业级应用,从而创造了新的就业机会并增加了更多的PHP开发需求。
本书共分14章,主要内容包括PHP环境的搭建、PHP开发工具、变量和常量、运算符与表达式、流程控制、数学函数、字符串搜索和截取、文件读写、文件上传与下载等。在应用方面介绍了PHP获取HTML表单数据,获取Cookie和Session数据,获取数据库数据,获取XML和JSON数据,获取Ajax异步数据等知识。最后一章介绍了常用的几种设计模式在PHP中的实现,如单例模式、工厂方法、适配器模式和状态模式等。
本书可以作为高等院校计算机相关专业PHP语言程序设计课程的教材,也可以作为PHP程序设计的培训教材,还可以作为自学者的参考书。
目录
- 第1 章 PHP 入门基础
- 1.1 PHP 简介 2
- 1.1.1 PHP 发展历史 2
- 1.1.2 PHP 的优势 3
- 1.2 配置PHP 运行环境 4
- 1.2.1 高手带你做——安装Apache 4
- 1.2.2 高手带你做——配置PHP 5 5
- 1.3 查看PHP 配置文件 8
- 1.4 选择PHP 语法风格 9
- 1.4.1 默认标记 9
- 1.4.2 ASP 风格标记 9
- 1.4.3 脚本标记 10
- 1.4.4 短标记 10
- 1.5 程序注释 12
- 1.5.1 单行注释 12
- 1.5.2 多行注释 12
- 1.6 快速搭建PHP 环境 13
- 1.6.1 高手带你做——安装WampServer 13
- 1.6.2 高手带你做——安装phpStudy 15
- 1.7 PHP 开发工具 17
- 1.7.1 Sublime Text 17
- 1.7.2 PhpStorm 19
- 1.8 高手带你做——自定义Apache
- 的主目录 21
- 1.9 高手带你做——在IIS 上配置PHP
- 环境 22
- 1.10 成长任务 24
- 第2 章 PHP 基础语法
- 2.1 常量 26
- 2.1.1 定义常量 26
- 2.1.2 引用常量 26
- 2.1.3 const 关键字 27
- 2.1.4 高手带你做——认识魔术常量 28
- 2.2 变量 29
- 2.2.1 声明变量 29
- 2.2.2 变量赋值 30
- 2.2.3 可变变量 31
- 2.2.4 变量的作用域 32
- 2.2.5 变量销毁 35
- 2.2.6 高手带你做——超级全局变量 35
- 2.3 数据类型 36
- 2.3.1 标量数据类型 36
- 2.3.2 复合数据类型 40
- 2.3.3 特殊数据类型 41
- 2.4 数据类型转换 43
- 2.4.1 强制类型转换 43
- 2.4.2 自动类型转换 45
- 2.4.3 数据类型函数 46
- 2.5 运算符 47
- 2.5.1 算术运算符 47
- 2.5.2 赋值运算符 48
- 2.5.3 逻辑运算符 48
- 2.5.4 比较运算符 49
- 2.5.5 位运算符 50
- 2.5.6 递增与递减运算符 50
- 2.5.7 错误控制运算符 51
- 2.6 高手带你做——认识条件运算符 52
- 2.7 表达式 53
- 2.8 运算符的优先级 54
- 2.9 PHP 输出函数 55
- 2.9.1 echo() 函数 55
- 2.9.2 print() 函数 56
- 2.9.3 printf() 函数 58
- 2.9.4 格式控制 58
- 2.9.5 sprintf() 函数 60
- 2.9.6 高手带你做——考生信息输出 61
- 2.10 成长任务 62
- 第3 章流程控制语句
- 3.1 了解算法 64
- 3.1.1 算法的定义 64
- 3.1.2 高手带你做——使用算法
- 求1 到4 的和 64
- 3.1.3 算法描述方式 65
- 3.2 顺序结构 68
- 3.2.1 语句编写方式 68
- 3.2.2 空语句 69
- 3.2.3 表达式语句 69
- 3.2.4 复合语句 69
- 3.3 if 条件语句 70
- 3.3.1 if 语句的语法 70
- 3.3.2 双条件if 语句 72
- 3.3.3 多条件if 语句 73
- 3.3.4 高手带你做——嵌套if 的使用 74
- 3.4 switch 条件语句 75
- 3.4.1 switch 语句的格式 75
- 3.4.2 if 语句和switch 语句的区别 77
- 3.4.3 高手带你做——根据出生
- 日期判断星座 78
- 3.5 循环语句 79
- 3.5.1 while 语句 79
- 3.5.2 do while 语句 80
- 3.5.3 for 语句 81
- 3.5.4 高手带你做——九九乘法口诀表 84
- 3.5.5 foreach 语句 85
- 3.6 其他语句 86
- 3.6.1 return 语句 87
- 3.6.2 break 语句 88
- 3.6.3 continue 语句 89
- 3.6.4 goto 语句 90
- 3.7 高手带你做——判断闰年 91
- 3.8 高手带你做——输出杨辉三角形 92
- 3.9 成长任务 93
- 第4 章 PHP 函数
- 4.1 用户函数 96
- 4.1.1 函数定义的语法结构 96
- 4.1.2 使用函数 97
- 4.1.3 函数的返回值 97
- 4.1.4 按值传递参数 98
- 4.1.5 按引用传递参数 99
- 4.1.6 默认值传递参数 100
- 4.1.7 可变参数列表 101
- 4.1.8 变量、常量与函数 102
- 4.1.9 高手带你做——判断函数
- 是否存在 103
- 4.2 高手带你做——函数高级应用 103
- 4.2.1 递归函数 104
- 4.2.2 嵌套函数 104
- 4.2.3 变量函数 105
- 4.3 变量处理函数 106
- 4.4 数学函数 106
- 4.5 日期和时间函数 107
- 4.5.1 checkdate() 函数 108
- 4.5.2 getdate() 函数 108
- 4.5.3 date() 函数 109
- 4.5.4 strtotime() 函数 111
- 4.5.5 microtime() 函数 112
- 4.5.6 gmdate() 函数 112
- 4.5.7 time() 函数 112
- 4.6 实战——模拟实现用户系统
- 登录功能 113
- 4.7 引用文件的函数 114
- 4.7.1 include() 函数 115
- 4.7.2 require() 函数 116
- 4.7.3 include_once() 函数和
- require_once() 函数 118
- 4.8 成长任务 120
- 第5 章面向对象编程
- 5.1 面向对象简介 122
- 5.1.1 对象的概念 122
- 5.1.2 抽象性 122
- 5.1.3 封装性 123
- 5.1.4 继承性 123
- 5.1.5 多态性 124
- 5.2 类和对象 125
- 5.2.1 高手带你做——认识类和对象 125
- 5.2.2 定义类 126
- 5.2.3 实例化类 127
- 5.3 类的成员 127
- 5.3.1 常量 127
- 5.3.2 字段 128
- 5.3.3 属性 131
- 5.3.4 方法 133
- 5.4 构造函数和析构函数 134
- 5.4.1 构造函数 135
- 5.4.2 高手带你做——查看个人信息 136
- 5.4.3 析构函数 137
- 5.5 作用域关键字 138
- 5.5.1 abstract 关键字 138
- 5.5.2 final 关键字 139
- 5.5.3 private 关键字 139
- 5.5.4 protected 关键字 140
- 5.5.5 public 关键字 141
- 5.5.6 static 关键字 142
- 5.6 继承 143
- 5.6.1 类继承 143
- 5.6.2 构造函数继承 145
- 5.6.3 高手带你做——实现图书
- 分类显示 146
- 5.7 PHP 实现接口 148
- 5.7.1 接口概述 148
- 5.7.2 定义接口 149
- 5.7.3 实现接口 149
- 5.8 成长任务 152
- 第6 章数组的应用
- 6.1 认识数组 154
- 6.2 基本操作 155
- 6.2.1 通过赋值创建数组 155
- 6.2.2 使用array() 函数创建数组 156
- 6.2.3 创建多维数组 157
- 6.2.4 输出数组内容 159
- 6.2.5 测试数组 160
- 6.3 遍历数组 161
- 6.3.1 foreach 语句遍历 161
- 6.3.2 for 语句遍历 162
- 6.3.3 each() 函数遍历 163
- 6.3.4 遍历数组的函数 164
- 6.4 简单计算 164
- 6.4.1 计算元素总数 164
- 6.4.2 计算元素出现的频率 165
- 6.4.3 计算出现的所有元素 166
- 6.5 元素操作 166
- 6.5.1 增加元素 167
- 6.5.2 删除元素 169
- 6.5.3 定位元素 170
- 6.5.4 提取元素 173
- 6.6 数组排序 176
- 6.6.1 按值排序 176
- 6.6.2 按键排序 178
- 6.6.3 关联排序 179
- 6.6.4 高手带你做——级联排序 181
- 6.6.5 高手带你做——按先奇后偶
- 的降序排列数组 182
- 6.7 其他操作 183
- 6.7.1 高手带你做——随机获取元素 183
- 6.7.2 联合数组 184
- 6.7.3 合并数组 185
- 6.7.4 拆分数组 187
- 6.7.5 替换数组 188
- 6.7.6 判断数组的类型 189
- 6.7.7 查找键名是否存在 190
- 6.7.8 查找值是否存在 191
- 6.7.9 去除重复元素值 192
- 6.7.10 高手带你做——数组键名和
- 值调换 193
- 6.8 成长任务 194
- 第7 章字符串应用
- 7.1 字符串简介 196
- 7.2 定义字符串 196
- 7.2.1 使用单引号 197
- 7.2.2 使用双引号 197
- 7.2.3 使用定界符 198
- 7.3 高手带你做——连接多个字符串 199
- 7.4 统计字符串 199
- 7.4.1 统计字符串的长度 200
- 7.4.2 统计字符的出现频率 200
- 7.4.3 统计单词数量 201
- 7.5 操作字符串内容 202
- 7.5.1 大小写替换 202
- 7.5.2 去除空格和特殊字符 204
- 7.5.3 比较字符串 206
- 7.5.4 查找字符串 208
- 7.6 操作子字符串 210
- 7.6.1 分隔字符串 210
- 7.6.2 填充字符串 212
- 7.6.3 截取字符串 213
- 7.6.4 替换字符串 216
- 7.7 高手带你做——字符串与
- HTML 转换 218
- 7.8 字符串编码 222
- 7.8.1 高手带你做——认识字符集
- 与编码 222
- 7.8.2 页面编码设置 225
- 7.8.3 编码转换 227
- 7.8.4 字符串加密 228
- 7.9 成长任务 230
- 第8 章文件处理
- 8.1 查看文件属性信息 232
- 8.1.1 文件类型 232
- 8.1.2 文件大小 232
- 8.1.3 访问和修改时间 233
- 8.1.4 其他属性的获取 234
- 8.2 高手带你做——操作文件 235
- 8.2.1 复制文件 236
- 8.2.2 重命名文件 236
- 8.2.3 删除文件 236
- 8.3 打开和关闭文件 237
- 8.3.1 打开文件 237
- 8.3.2 关闭文件 238
- 8.4 读取文件 238
- 8.4.1 读取一行 239
- 8.4.2 读取指定字节 242
- 8.4.3 读取全部内容 244
- 8.4.4 其他读取函数 245
- 8.5 写入文件 246
- 8.5.1 fwrite() 函数 247
- 8.5.2 fputs() 函数 248
- 8.5.3 file_put_contents() 函数 249
- 8.6 高手带你做——认识文件指针 250
- 8.6.1 fseek() 函数 251
- 8.6.2 ftell() 函数 251
- 8.6.3 rewind() 函数 252
- 8.7 操作目录 252
- 8.7.1 打开目录 252
- 8.7.2 关闭目录 253
- 8.7.3 遍历目录 253
- 8.7.4 创建目录 256
- 8.7.5 删除目录 256
- 8.8 解析路径 257
- 8.8.1 获取文件名 257
- 8.8.2 获取目录部分 257
- 8.8.3 获取路径中的各个部分 257
- 8.8.4 获取绝对路径 258
- 8.9 读取磁盘属性 259
- 8.9.1 获取目录所在磁盘的
- 可用空间 259
- 8.9.2 获取磁盘总容量 260
- 8.9.3 高手带你做——获取目录
- 占用的空间 260
- 8.10 高手带你做——实现项目的新增
- 和保存 262
- 8.11 成长任务 265
- 第9 章获取页面数据
- 9.1 认识HTML 表单 268
- 9.2 制作HTML 表单 268
- 9.2.1 表单的组成元素 269
- 9.2.2 表单标签 270
- 9.2.3 文本框 270
- 9.2.4 多行文本框 271
- 9.2.5 隐藏域 271
- 9.2.6 复选框 272
- 9.2.7 单选按钮 272
- 9.2.8 下拉选择框 273
- 9.2.9 文件上传框 274
- 9.2.10 表单按钮 274
- 9.3 获取表单数据 275
- 9.3.1 设置表单提交方式 276
- 9.3.2 获取GET 提交的数据 277
- 9.3.3 获取POST 提交的数据 279
- 9.4 表单的常见操作 280
- 9.4.1 遍历表单 280
- 9.4.2 获取表单中的多值 282
- 9.4.3 高手带你做——动态生成表单 284
- 9.5 高手带你做——表单处理技巧 288
- 9.5.1 检测表单提交路径 288
- 9.5.2 避免表单重复提交 290
- 9.5.3 表单过期处理 292
- 9.6 转换URL 中的汉字 293
- 9.6.1 编码操作 293
- 9.6.2 解码操作 293
- 9.7 文件上传 294
- 9.7.1 准备文件上传表单 294
- 9.7.2 处理上传文件 295
- 9.8 文件下载 297
- 9.9 高手带你做——身份验证 299
- 9.9.1 HTTP 身份验证 299
- 9.9.2 PHP 身份认证 300
- 9.10 成长任务 303
- 第10 章会话处理
- 10.1 了解Cookie 306
- 10.1.1 Cookie 简介 306
- 10.1.2 Cookie 的工作原理 306
- 10.1.3 Cookie 的类型和属性 307
- 10.2 操作Cookie 308
- 10.2.1 创建Cookie 308
- 10.2.2 读取Cookie 309
- 10.2.3 设置Cookie 过期时间 311
- 10.2.4 高手带你做——删除Cookie 312
- 10.3 高手带你做——实现记住上次
- 登录时间 313
- 10.4 了解Session 316
- 10.4.1 Session 简介 316
- 10.4.2 Session 的常用函数 317
- 10.5 操作Session 318
- 10.5.1 获取Session ID 318
- 10.5.2 读写Session 数据 319
- 10.5.3 编码Session 数据 323
- 10.5.4 解码Session 数据 324
- 10.5.5 删除Session 数据 325
- 10.5.6 Session 的缓存 326
- 10.6 高手带你做——实现购物车 327
- 10.7 高手带你做——认识Cookie
- 与Session 的区别 333
- 10.8 成长任务 334
- 第11 章数据库编程
- 11.1 MySQL 数据库 336
- 11.1.1 安装MySQL 数据库 336
- 11.1.2 配置MySQL 数据库 338
- 11.1.3 高手带你做——MySQL
- 快速入门操作 340
- 11.2 PHP 连接MySQL 方式 341
- 11.2.1 mysql 库 342
- 11.2.2 mysqli 库 342
- 11.2.3 PDO 库 343
- 11.3 连接MySQL 数据库 344
- 11.3.1 创建连接对象 344
- 11.3.2 设置连接选项 345
- 11.3.3 测试连接错误 346
- 11.3.4 关闭连接 346
- 11.4 基本操作 347
- 11.4.1 执行更新语句 348
- 11.4.2 mysqli_result 类 349
- 11.4.3 fetch_row() 方法 350
- 11.4.4 fetch_assoc() 方法 351
- 11.4.5 fetch_array() 方法 352
- 11.4.6 fetch_object() 方法 353
- 11.4.7 获取数据列的信息 354
- 11.4.8 一次执行多条SQL 命令 355
- 11.5 使用预处理语句 357
- 11.5.1 mysqli_stmt 类 357
- 11.5.2 绑定参数预处理语句 358
- 11.5.3 绑定结果预处理语句 360
- 11.6 读取数据库显示乱码解决方案 361
- 11.6.1 了解产生乱码的原因 361
- 11.6.2 PHP 网页的编码 361
- 11.6.3 MySQL 数据库的编码 362
- 11.7 高手带你做——数据分页显示 362
- 11.8 高手带你做——数据库事务处理 365
- 11.9 成长任务 368
- 第12 章 XML 和JSON 处理
- 12.1 XML 简介 370
- 12.1.1 XML 概述 370
- 12.1.2 XML 的基本结构 370
- 12.1.3 XML 声明 371
- 12.1.4 XML 实体 371
- 12.1.5 高手带你做——创建水果
- 信息XML 文件 372
- 12.1.6 命名空间 372
- 12.2 高手带你做——生成水果信息
- XML 文件 373
- 12.3 XML 解析器 374
- 12.3.1 DOM 解析XML 374
- 12.3.2 SAX 解析XML 377
- 12.3.3 高手带你做——SAX 解析
- XML 文件 380
- 12.3.4 SimpleXML 解析XML 382
- 12.4 高手带你做——管理报表项目信息 385
- 12.5 高手带你做——JavaScript 读取
- APP 信息 390
- 12.6 处理JSON 格式响应 393
- 12.6.1 JSON 语法 393
- 12.6.2 编码JSON 数据 394
- 12.6.3 解码JSON 数据 396
- 12.7 成长任务 397
- 第13 章 PHP 高级编程技术
- 13.1 正则表达式语法 400
- 13.1.1 正则表达式概述 400
- 13.1.2 Perl 风格的正则表达式 402
- 13.2 PHP 正则表达式的使用 404
- 13.2.1 正则表达式函数 404
- 13.2.2 简单匹配 405
- 13.2.3 全局匹配 406
- 13.2.4 获取与模式匹配的数组 407
- 13.2.5 转义字符 408
- 13.2.6 搜索和替换函数 409
- 13.2.7 分割字符串 410
- 13.3 高手带你做——校验常见数据 411
- 13.4 错误和异常处理 413
- 13.4.1 PHP 错误级别 413
- 13.4.2 配置文件选项 414
- 13.4.3 内置处理函数 415
- 13.4.4 异常处理语句 419
- 13.4.5 高手带你做——自定义
- 异常类 421
- 13.5 Ajax 异步通信 422
- 13.5.1 Ajax 简介 422
- 13.5.2 XMLHttpRequest 对象简介 423
- 13.5.3 高手带你做——读取异步
- 提交的项目信息 425
- 13.5.4 高手带你做——读取用户列表 429
- 13.5.5 高手带你做——处理JSON 431
- 13.5.6 高手带你做——Ajax 中文
- 乱码解决方案 432
- 13.6 PHP 开发编程规范 433
- 13.6.1 项目结构规范 434
- 13.6.2 程序注释 434
- 13.6.3 命名规范 436
- 13.6.4 代码编写规范 437
- 13.6.5 包含文件 439
- 13.7 成长任务 440
- 第14 章 PHP 设计模式
- 14.1 认识设计模式 442
- 14.1.1 设计模式简介 442
- 14.1.2 设计模式的理解 442
- 14.1.3 设计模式的分类 443
- 14.1.4 为什么要学习设计模式 444
- 14.1.5 如何学习设计模式 445
- 14.1.6 学习设计模式的层次 445
- 14.1.7 面向对象的设计原则 446
- 14.2 单例模式 447
- 14.3 简单工厂 448
- 14.4 工厂方法 452
- 14.5 抽象工厂 454
- 14.6 适配器模式 455
- 14.7 外观模式 457
- 14.8 观察者模式 459
- 14.9 状态模式 461
- 14.10 不要过度使用设计模式 464