零基础学php第3版,零基础学PHP(第3版)[按需印刷]

《零基础学PHP(第3版)》

前言

第一篇 PHP技术基础

第1章 PHP起步 1

1.1 初识PHP 1

1.2 LAMP——锋利四剑客:Linux、Apache、MySQL和PHP 2

1.3 PHP Web编程的体系结构和基本内容 3

1.3.1 了解PHP、HTML、CSS和JavaScript及其关系 3

1.3.2 HTML文档 3

1.3.3 使用样式表实现页面效果 4

1.3.4 客户端的响应 4

1.3.5 嵌入式脚本页面 4

1.4 开始PHP之旅:搭建PHP开发环境 5

1.4.1 下载Apache、MySQL和PHP 5

1.4.2 在Windows下配置开发环境 7

1.4.3 在Linux/UNIX下配置开发环境 9

1.4.4 善其事,利其器——PHP编辑器的选择 10

1.5 用PHP做些事儿 12

1.5.1 编写第一个PHP程序——“Hello,PHP!” 12

1.5.2 使用PHP处理HTML表单 12

1.6 深入了解Apache、PHP和MySQL 13

1.7 实例:使用JavaScript验证HTML表单数据 17

1.8 小结 22

1.9 习题 22

第2章 PHP语言 24

2.1 基础语法 24

2.1.1 PHP分隔符 24

2.1.2 给PHP程序添加注释 25

2.2 数据类型 26

2.2.1 整数类型:integer 26

2.2.2 浮点类型:float 26

2.2.3 字符串类型:string 26

2.2.4 布尔类型:boolean 29

2.2.5 数组类型:array 29

2.3 变量 30

2.3.1 什么是变量 30

2.3.2 变量的命名规则 30

2.3.3 变量类型的转换 30

2.3.4 可变变量 31

2.3.5 PHP的预定义变量 32

2.3.6 判断变量的类型 33

2.3.7 获取变量的类型 33

2.3.8 设置变量的类型 34

2.3.9 判断一个变量是否已经定义 34

2.3.10 删除一个变量 35

2.4 常量 35

2.4.1 什么是常量 35

2.4.2 定义常量 35

2.4.3 使用PHP预定义常量 36

2.5 表达式 37

2.6 运算符 38

2.6.1 赋值运算符 38

2.6.2 算术运算符 38

2.6.3 递增/递减运算符 39

2.6.4 字符串运算符 40

2.6.5 逻辑运算符 41

2.6.6 比较运算符 42

2.6.7 运算符的优先级 42

2.7 PHP程序的流程控制 43

2.7.1 程序流程控制概述 43

2.7.2 条件控制语句:if和if…else语句 43

2.7.3 switch结构 46

2.7.4 循环控制语句:for循环语句 47

2.7.5 while循环语句 49

2.7.6 do…while循环语句 49

2.7.7 break和continue语句 50

2.7.8 条件运算符? : 51

2.8 函数 52

2.8.1 PHP中函数的概念 52

2.8.2 定义函数和调用函数 52

2.8.3 函数的参数和函数的返回值 53

2.8.4 PHP函数的传值与传址 55

2.8.5 变量作用域 56

2.9 小结 58

2.10 习题 59

第3章 用PHP进行Web编程 60

3.1 PHP的Web编程基础 60

3.1.1 HTTP协议原理 60

3.1.2 创建HTML表单 61

3.1.3 访问和获取HTML表单数据 61

3.1.4 用PHP处理表单数据 63

3.1.5 用PHP验证表单数据有效性 64

3.1.6 PHP中的session 65

3.1.7 PHP中的文件上传处理 66

3.2 实例:用PHP开发一个简单的网站 68

3.2.1 网站功能设计 68

3.2.2 页面设计 69

3.2.3 用JavaScript实现客户端响应 69

3.2.4 服务器端用PHP处理请求 70

3.3 小结 73

3.4 习题 73

第二篇 PHP数据处理

第4章 PHP中的函数 75

4.1 用户自定义函数 75

4.2 函数的其他定义方式 76

4.3 递归函数 77

4.4 函数的参数 78

4.5 函数的返回值 79

4.6 变量函数 80

4.7 系统函数 81

4.8 带有默认参数函数的使用方法 81

4.9 小结 82

4.10 习题 82

第5章 PHP对数组的处理 83

5.1 建立数组的方法 83

5.1.1 使用array()函数新建数组 83

5.1.2 使用变量建立数组 84

5.1.3 使用两个数组创建一个数组 85

5.2 输出数组元素的方法 85

5.2.1 使用for循环语句输出数组元素 85

5.2.2 使用foreach循环语句输出数组元素 86

5.2.3 使用函数print_r()显示数组元素 87

5.3 计算数组元素个数 88

5.4 对数组进行分割、合并 88

5.4.1 实现数组分割 89

5.4.2 实现数组合并 89

5.5 处理数组元素和键值位置 90

5.6 对数组进行排序 92

5.6.1 使用sort()对数组进行排序 92

5.6.2 使用rsort()对数组进行逆向排序 93

5.6.3 排序时保持原数组的索引 94

5.6.4 数组的随机排序 95

5.6.5 数组的反向排序 96

5.7 重置一个数组 97

5.8 用数组对变量赋值 98

5.9 快速创建数组 99

5.10 压入和弹出数组元素 99

5.10.1 压入数组元素 99

5.10.2 弹出数组元素 100

5.11 改变数组字符索引名的大小写 101

5.12 对数组的集合处理 102

5.12.1 计算交集 102

5.12.2 计算差集 104

5.13 交换数组索引和元素 104

5.14 快速填充数组元素 105

5.15 统计数组元素出现次数 105

5.16 检查数组索引是否存在 106

5.17 取得数组中的所有索引 107

5.18 用回调函数处理数组 108

5.19 其他数组处理函数 109

5.19.1 判断某个值是否存在于数组 109

5.19.2 获取数组中当前单元的索引值 110

5.20 小结 111

5.21 习题 111

第6章 PHP对字符串的处理 113

6.1 对字符串做分割和合并 113

6.2 对字符串做比较和替换 114

6.2.1 比较两个字符串大小 114

6.2.2 字符串的替换 115

6.3 输出打印字符串 117

6.4 格式化字符串 117

6.5 获取字符串中的一个子串 119

6.6 删除字符串两侧的空白 120

6.6.1 删除字符串末尾部分的空白字符 120

6.6.2 删除字符串开始部分的空白字符 121

6.6.3 删除字符串两头的空白字符 121

6.7 获取字符串的长度 123

6.8 其他常见的字符串操作 123

6.8.1 对字符串做大小写转换 123

6.8.2 处理含有HTML标记的字符串 124

6.8.3 多次生成一个字符串 125

6.8.4 将字符串分析到变量 127

6.8.5 转换字符串到数组 128

6.8.6 计算字符串的散列 129

6.9 小结 130

6.10 习题 131

第7章 用PHP处理日期和时间 132

7.1 获取格式化的日期和时间 132

7.2 处理UNIX时间戳 134

7.3 获取日期和时间的相关信息 135

7.4 PHP中的日期计算 136

7.5 检查日期的有效性 136

7.6 使用PHP制作万年历 137

7.7 小结 140

7.8 习题 141

第8章 用PHP操作目录和文件 142

8.1 常见的目录操作 142

8.1.1 打开和关闭目录 142

8.1.2 获取目录中下一个文件的文件名 143

8.1.3 列出某一目录下的所有文件 143

8.1.4 获取和改变PHP的当前工作目录 144

8.1.5 从目录句柄中读取条目 145

8.1.6 关闭目录句柄 146

8.2 常见的文件操作 146

8.2.1 打开和关闭文件 146

8.2.2 读出文件的内容 147

8.2.3 向文件写入内容 149

8.2.4 获取文件的相关信息 150

8.2.5 一些判断文件性质的函数 151

8.3 文件和目录的通用操作 152

8.3.1 获取路径中的文件名和目录名 152

8.3.2 判断文件或目录是否存在 153

8.3.3 建立目录和删除目录 154

8.3.4 复制、删除和移动文件 155

8.4 文件的高级操作 156

8.4.1 处理文件的锁定 156

8.4.2 更改文件的属性 157

8.4.3 获取文件时间属性 158

8.4.4 通过HTTP协议打开文件 159

8.4.5 包含指定的文件到当前文件 160

8.5 小结 161

8.6 习题 162

第9章 PHP中对URL、HTTP的处理 163

9.1 URL地址分析 163

9.1.1 为什么要对URL进行处理 163

9.1.2 对URL进行编码 163

9.1.3 对URL进行解码 164

9.1.4 对URL地址进行分析 165

9.2 HTTP应用 166

9.2.1 生成一个HTTP头 166

9.2.2 获取HTTP头信息 167

9.3 在PHP中生成cookie 168

9.3.1 生成cookie 169

9.3.2 获取cookie 169

9.3.3 设置cookie的有效期 170

9.3.4 解决cookie的失效问题 171

9.3.5 设置cookie的有效路径 171

9.3.6 删除cookie 172

9.4 小结 172

9.5 习题 172

第10章 用PHP获取系统信息 174

10.1 获取和添加PHP环境变量 174

10.2 查看被载入的PHP扩展模块 175

10.3 获取PHP的当前各类信息 177

10.4 获取当前PHP进程的进程号和程序所有者 177

10.5 小结 178

10.6 习题 178

第11章 PHP中的数学运算 179

11.1 数学运算 179

11.1.1 常见的数据运算函数 179

11.1.2 数据运算函数范例 180

11.2 不同进制之间的数字转换 181

11.3 随机数 182

11.3.1 生成随机数的步骤 182

11.3.2 生成随机数的函数 182

11.4 小结 183

11.5 习题 184

第12章 应用实践一:基于文本的简易BLOG系统 185

12.1 系统功能设计 185

12.2 数据的存储及系统架构 186

12.3 系统功能实现 186

12.3.1 实现BLOG文章的显示 187

12.3.2 完善用户界面 189

12.3.3 实现BLOG文章的添加功能 194

12.3.4 实现登录功能 198

12.3.5 实现BLOG首页 201

12.3.6 实现BLOG文章的编辑功能 204

12.3.7 实现BLOG文章的删除功能 207

12.3.8 实现BLOG归档显示的功能 211

12.3.9 实现BLOG的退出功能 214

12.4 小结 216

12.5 习题 216

第三篇 PHP和MySQL数据库

第13章 MySQL数据库和SQL基础 217

13.1 MySQL数据库的安装与配置 217

13.1.1 认识MySQL 217

13.1.2 安装MySQL前的准备 218

13.1.3 安装并配置MySQL 218

13.1.4 管理工具 224

13.1.5 PHP配置文件与MySQL访问 225

13.1.6 下载phpMyAdmin 225

13.1.7 配置phpMyAdmin 226

13.1.8 使用phpMyAdmin 226

13.2 MySQL数据库的基本操作 229

13.2.1 表、字段、记录和键的概念 229

13.2.2 登录和退出MySQL 230

13.2.3 建立和删除数据库 230

13.2.4 表的查看与建立 231

13.2.5 建立索引 232

13.3 MySQL中的SQL语法基础 233

13.3.1 查看表结构 233

13.3.2 插入数据 233

13.3.3 查询数据 234

13.3.4 条件查询 234

13.3.5 更新数据 235

13.3.6 删除数据 236

13.3.7 对查询结果排序 236

13.3.8 对查询结果分组 237

13.3.9 对查询结果进行限定 237

13.3.10 MySQL的数据类型 238

13.3.11 MySQL运算符 239

13.3.12 MySQL中的模式匹配 239

13.3.13 使用MySQL函数 240

13.4 小结 243

13.5 习题 243

第14章 使用PHP操作MySQL数据库 245

14.1 操作MySQL的PHP函数 245

14.1.1 连接和关闭数据库的函数 245

14.1.2 执行SQL语句的函数 246

14.1.3 处理查询结果集的函数 246

14.1.4 获取字段信息的函数 247

14.1.5 数据库操作的其他函数 247

14.2 使用PHP连接MySQL数据库 248

14.2.1 建立和数据库的连接 248

14.2.2 持久连接和临时连接 249

14.2.3 关闭连接 249

14.3 使用PHP显示MySQL数据库的数据 250

14.3.1 在PHP中执行SQL语句 250

14.3.2 用PHP处理数据结果集 252

14.3.3 向Web页面显示数据 254

14.3.4 数据分页显示的原理及实现 255

14.4 使用PHP维护MySQL数据库的数据 258

14.4.1 从页面获取数据并插入数据库 259

14.4.2 根据表单内容修改数据库数据 260

14.4.3 通过PHP删除数据库数据 263

14.5 PHP操作MySQL常见错误信息及分析 265

14.6 小结 267

14.7 习题 267

第四篇 更上一层楼——PHP进阶

第15章 面向对象的PHP编程 269

15.1 面向对象编程的基本概念 269

15.2 PHP中的类和对象 270

15.2.1 类的创建 270

15.2.2 类的实例化——对象 272

15.2.3 构造函数和析构函数 273

15.2.4 继承 274

15.2.5 访问对象的属性和方法 275

15.2.6 PHP中类的静态成员 277

15.2.7 PHP中一些和类有关的函数 278

15.3 实例分析——深入理解PHP的类和对象 281

15.4 小结 286

15.5 习题 286

第16章 PHP程序中的错误处理 288

16.1 在PHP中处理程序错误 288

16.1.1 语法错误的处理 288

16.1.2 运行时错误的处理 289

16.1.3 逻辑错误的处理 290

16.2 PHP中的异常处理类及其用法 290

16.2.1 PHP中的异常处理类 291

16.2.2 PHP程序中捕获异常的方法 291

16.2.3 获取异常信息 293

16.2.4 获取错误发生的文件 294

16.2.5 获取错误发生的行 295

16.3 PHP配置设定的错误处理方法 296

16.3.1 和错误处理有关的项 296

16.3.2 错误报告 296

16.4 自定义错误处理 298

16.5 小结 300

16.6 习题 300

第17章 PHP与XML 302

17.1 认识XML 302

17.1.1 什么是XML 302

17.1.2 XML的结构 302

17.1.3 XML、HTML、SGML之间的关系和区别 303

17.1.4 建立一个简单的XML文件 303

17.2 深入认识XML文档 306

17.2.1 XML声明 306

17.2.2 XML元素 306

17.2.3 标记和属性 307

17.2.4 注释 308

17.2.5 处理指令 309

17.2.6 实体简介 309

17.2.7 文件类型定义 310

17.3 在PHP中处理XML 312

17.3.1 在PHP中建立对XML的支持 313

17.3.2 用PHP函数处理XML文档 313

17.3.3 XML解析器的建立和释放 314

17.3.4 处理XML元素的函数 314

17.3.5 处理XML字符数据的函数 315

17.3.6 解析一个XML文档 315

17.3.7 完整实例分析 315

17.4 使用SimpleXML处理XML 317

17.4.1 SimpleXML简介 317

17.4.2 载入XML文件的函数 318

17.4.3 载入XML字符串的函数 319

17.4.4 使用SimpleXML的实例 320

17.5 使用PHP的DOM库处理XML文档 320

17.5.1 什么是DOM 320

17.5.2 通过DOM在PHP中处理XML文档的过程 321

17.6 小结 323

17.7 习题 323

第18章 PHP与AJAX 325

18.1 认识AJAX 325

18.1.1 什么是AJAX 325

18.1.2 AJAX的工作原理 326

18.2 AJAX与数据交互 327

18.2.1 创建XMLHttpRequest对象 327

18.2.2 发送异步请求 328

18.2.3 编写回调函数 331

18.2.4 完整实例 331

18.3 一个实现AJAX的PHP类——xajax 335

18.3.1 下载和安装xajax 335

18.3.2 xajax简介 335

18.3.3 在PHP程序中使用xajax 336

18.3.4 xajax应用实例 337

18.4 一个AJAX框架——Spry框架 338

18.4.1 Spry框架简介 338

18.4.2 Spry框架的使用方法 340

18.5 小结 341

18.6 习题 341

第19章 PHP与图像处理 343

19.1 PHP的图像处理库——GD库 343

19.1.1 在Linux下安装GD库 343

19.1.2 在Windows下安装GD库 343

19.1.3 主要图像处理函数介绍 344

19.2 图像的建立 345

19.2.1 生成图像的步骤 345

19.2.2 用PHP生成图像 346

19.2.3 设定图像颜色 347

19.2.4 在图像上绘制直线 347

19.2.5 在图像上输出文字 348

19.3 图片处理 350

19.3.1 打开已经存在的图片 351

19.3.2 获取图片的相关属性 351

19.3.3 对图片加水印效果 353

19.3.4 生成已有图片的缩略图 357

19.3.5 对图片加文字效果 359

19.4 实例:生成带有底纹的数字验证码图片 360

19.5 小结 361

19.6 习题 362

第20章 PHP与MVC开发模式 364

20.1 什么是MVC模型 364

20.2 MVC模型的组成 365

20.2.1 控制器 365

20.2.2 数据模型 365

20.2.3 视图 366

20.3 PHP开发中的模板技术 366

20.3.1 什么是模板 366

20.3.2 在PHP程序中使用模板 366

20.3.3 Smarty模板引擎介绍 367

20.3.4 Smarty模板引擎的使用 368

20.4 常见的基于MVC的PHP开发框架简介 369

20.4.1 CodeIgniter 369

20.4.2 CakePHP 370

20.4.3 Zend Framework 370

20.4.4 FleaPHP 371

20.5 CodeIgniter框架应用 371

20.5.1 CodeIgniter的技术特点介绍 371

20.5.2 安装CodeIgniter 372

20.5.3 CodeIgniter的Controller 372

20.5.4 CodeIgniter的Model 374

20.5.5 CodeIgniter的View 375

20.6 小结 377

20.7 习题 378

第21章 PHP中的正则表达式 379

21.1 什么是正则表达式 379

21.2 正则表达式的语法 380

21.2.1 模式 380

21.2.2 元字符 381

21.2.3 转义字符 382

21.2.4 字符类 382

21.2.5 反义 383

21.2.6 数量匹配限定符 383

21.2.7 正则表达式构建实例 384

21.3 PHP中的POSIX扩展正则表达式函数 385

21.3.1 正则表达式匹配函数 385

21.3.2 替换匹配字符串的函数 387

21.3.3 根据正则表达式分割字符串的函数 388

21.3.4 生成正则表达式的函数 390

21.4 PHP中的PERL兼容正则表达式函数 390

21.4.1 PERL兼容正则表达式中的修正符 391

21.4.2 返回与模式匹配的数组单元的正则表达式函数 391

21.4.3 进行正则表达式匹配的函数 393

21.4.4 进行全局正则表达式匹配的函数 394

21.4.5 执行正则表达式的搜索和替换的函数 395

21.5.6 用正则表达式分割字符串的函数 396

21.5 几例常见正则表达式分析 398

21.5.1 检查IP地址的正则表达式 398

21.5.2 检查中文字符的正则表达式 400

21.5.3 检查Email地址的正则表达式 401

21.5.4 检查URL地址的正则表达式 403

21.6 小结 404

21.7 习题 405

第五篇 PHP应用实例与常见面试题

第22章 应用实践二:用PHP发送邮件 407

22.1 mail()函数和SMTP简介 407

22.1.1 mail()函数配置与语法 407

22.1.2 SMTP与指令 408

22.2 功能设计和实现 408

22.2.1 设计一个发送邮件的类 409

22.2.2 测试发送邮件功能 412

22.2.3 发送邮件的表单及程序实现 413

22.3 小结 416

第23章 常见面试题 417

面试题1 数组函数arsort()的作用是什么 417

面试题2 简述include语句和require语句的区别 417

面试题3 写出的输出结果 417

面试题4 如何实现字符串翻转 417

面试题5 说出echo、print()和print_r() 3个函数的区别 417

面试题6 写出显示客户端IP与服务器IP的代码 418

面试题7 SQL中LEFT JOIN是什么意思 418

面试题8 如何修改session的生存时间 418

面试题9 写一个能遍历文件夹下所有文件和子文件夹的函数 419

面试题10 写一个过滤网页上所有JS/VBS脚本的正则表达式 419

面试题11 PHP中字符串的表现形式有哪些 419

面试题12 谈谈你对MVC的认识 420

面试题13 sort()、asort ()和ksort()有什么区别 420

面试题14 说出代码的输出结果(变量的作用域) 420

面试题15 哪个函数可打开文件并且能读/写文件信息 421

面试题16 写一个函数验证电子邮件的格式 421

面试题17 使用PHP写一段简单查询 421

面试题18 写出PHP权限控制修饰符 422

面试题19 说明PHP中传值与传引用的区别 422

面试题20 从一个标准URL里取出文件的扩展名 422

面试题21 用PHP打印出前一天的时间 422

面试题22 你一般都使用哪些工具进行版本控制 423

面试题23 优化MYSQL数据库的方法 423

面试题24 创建vote表用于记录单选投票用户的数据 423

面试题25 网站出现too many connection错误的解决方案 423

面试题26 session与cookie的区别 424

附录A 配置Eclipse成为PHP开发工具 425

附录B 正则表达式参考 429

附录C PHP代码编写的一般规则 432

你可能感兴趣的:(零基础学php第3版)