细说PHP 第二版
作 者: 高洛峰编著
出版时间:2012
内容简介
PHP是开发Web应用系统最理想的工具,易于使用、功能强大、成本低廉、高安全性、开发速度快且执行灵活。全书以实用为目标设计,包含PHP开发最主流的各项技术,对每一个知识点都进行了深入详细的讲解,并附有大量的实例代码,图文并茂。系统地介绍了PHP的相关技术及其在实际Web开发中的应用。全书共六个部分,分为30个章节,每一章都是PHP独立知识点的总结。内容涵盖了动态网站开发的前台技术(HTML+CSS)、PHP编程语言的语法、PHP的常用功能模块和实用技巧、MySQL数据库的设计与应用、PHP面向对象的程序设计思想、数据库抽象层PDO、Smarty模板技术、Web开发的设计模式、自定义框架BroPHP、Web项目开发整个流程等目前PHP开发中最主流的技术。每一章中都有大量的实用示例,以及详尽的注释,加速读者的理解和学习,也为每章的技术点设置了大量的自测试题。最后以一个比较完整的、采用面向对象思想,以及通过MVC模式设计,并结合Smarty模板,基于BroPHP框架的CMS系统为案例,详细介绍了Web系统开发从设计到部署的各个细节,便于更好地进行开发实践。对于PHP应用开发的新手而言,本书不失为一本好的入门教材,内容既实用又全面,所有实例都可以在开发中直接应用,并辅以大量的视频教程,使读者轻松掌握所学知识。另外,本书也适合有一定基础的网络开发人员和网络爱好者,以及大中专院校的师生阅读与参考。不仅可以作为PHP开发的学习用书,还可以作为从事Web开发的程序员的参考用书和必备手册。对于行家来说,本书也是一本难得的参考手册,读者必将从中获益。
目录
第1部分 web开发入门篇
第1章 lamp网站构建
1.1 介绍网站给你认识
1.1.1 web应用的优势
1.1.2 web 2.0时代的互联网
1.1.3 web开发标准
1.1.4 认识脚本语言
1.1.5 了解http协议
1.2 动态网站开发所需的web构件
1.2.1 客户端浏览器
1.2.2 超文本标记语言html
1.2.3 层叠样式表css
1.2.4 客户端脚本编程语言javascript
1.2.5 web服务器
1.2.6 服务器端编程语言
1.2.7 数据库管理系统
1.3 几种主流的web应用程序平台
1.3.1 web应用程序开发平台对比分析
1.3.2 动态网站开发平台技术比较
1.4 web的工作原理
1.4.1 情景1:服务器不带应用程序服务器和数据库
1.4.2 情景2:带应用程序服务器的web服务器
1.4.3 情景3:浏览器访问服务器端的数据库
1.5 lamp网站开发组合概述
1.5.1 linux操作系统
1.5.2 web服务器apache
1.5.3 mysql数据库管理系统
1.5.4 php后台脚本编程语言
1.5.5 lamp发展趋势
1.6 学php需要学习什么内容
1.6.1 学php之前的准备
1.6.2 学php时需要了解或掌握的内容
1.6.3 优秀的web程序员是怎样练成的
1.7 小结
本章必须掌握的知识点
本章需要了解的内容
第2章 html的设计与应用
2.1 网页制作概述
2.1.1 html基础
2.1.2 简单html实例制作
2.2 html语言的语法
2.2.1 html标签和元素
2.2.2 html语法不区分字母大小写
2.2.3 html标签属性
2.2.4 html颜色值的设置
2.2.5 html文档注释
2.2.6 html代码格式
2.2.7 html字符实体
2.3 html文件的主体结构
2.4 html文档头部元素[head]
2.4.1 [title]元素
2.4.2 [base]元素
2.4.3 [link]元素
2.4.4 [meta]元素
2.5 html文档主体标记
2.6 文字版面的编辑
2.6.1 格式标签
2.6.2 文本标签
2.7 创建图像和链接
2.7.1 插入图片
2.7.2 建立锚点和超链接
2.8 使用html表格
2.9 html框架结构
2.10 html表单设计
2.11 小结
本章必须掌握的知识点
本章需要了解的内容
本章需要拓展的内容
本章的学习建议
第3章 层叠样式表css
3.1 css简介
3.2 css规则的组成
3.2.1 css注释
3.2.2 长度单位
3.2.3 颜色单位和url值
3.3 在html文档中放置css的几种方式
3.3.1 内联样式表
3.3.2 嵌入一个样式表
3.3.3 连接到一个外部的样式表
3.4 css选择器
3.4.1 html选择器
3.4.2 类选择器
3.4.3 id选择器
3.4.4 关联选择器
3.4.5 组合选择器
3.4.6 伪元素选择器
3.5 css常见的样式属性和值
3.5.1 字体属性
3.5.2 颜色属性
3.5.3 背景属性
3.5.4 文本属性
3.5.5 边框属性
3.5.6 鼠标光标属性
3.5.7 列表属性
3.5.8 综合示例
3.6 小结
本章必须掌握的知识点
本章需要了解的内容
本章需要拓展的内容
本章的学习建议
第4章 div+css网页标准化布局
4.1 div+css对页面布局的优势
4.2 “无意义”的html元素div和span
4.3 w3c盒子模型
4.4 和页面布局有关的css属性
4.5 盒子区块框的定位
4.5.1 相对定位
4.5.2 绝对定位
4.6 使用盒子模型的浮动布局
4.6.1 设置浮动
4.6.2 行框和清理
4.7 div+css的兼容性问题
4.7.1 不同浏览器解释盒子模型的差异
4.7.2 设置浏览器去遵循w3c标准
4.8 使用盒子模型设计页面布局
4.8.1 居中设计
4.8.2 设置两列浮动的布局
4.8.3 设置三列浮动的布局
4.8.4 设置多列浮动的布局
4.9 div+css网站首页面布局实例
4.9.1 html文件的设计
4.9.2 css文件设计
4.10 小结
本章必须掌握的知识点
本章需要了解的内容
本章需要拓展的内容
本章的学习建议
第2部分 php基础篇
第5章 从搭建你的php开发环境开始
5.1 几种常见的php环境安装方式
5.1.1 linux系统下源代码包方式安装环境
5.1.2 在windows系统上安装web工作环境
5.1.3 搭建学习型的php工作环境
5.2 环境安装对操作系统的选择
5.2.1 选择网站运营的操作系统
5.2.2 选择网站开发的操作系统
5.3 安装集成php开发环境
5.3.1 安装前准备
5.3.2 安装步骤
5.3.3 环境测试
5.4 phpmyadmin的配置与应用
5.4.1 http身份验证模式
5.4.2 cookie身份验证模式
5.4.3 config身份验证模式
5.5 小结
本章必须掌握的知识点
本章需要了解的内容
本章需要拓展的内容
第6章 php的基本语法
6.1 php在web开发中的应用
6.1.1 就从认识php开始吧
6.1.2 php都能做什么
6.2 第一个php脚本程序
6.3 php语言标记
6.3.1 将php代码嵌入html中的位置
6.3.2 解读开始和结束标记
6.4 指令分隔符“分号”
6.5 程序注释
6.6 在程序中使用空白的处理
6.7 变量
6.7.1 变量的声明
6.7.2 变量的命名
6.7.3 可变变量
6.7.4 变量的引用赋值
6.8 变量的类型
6.8.1 类型介绍
6.8.2 布尔型(boolean)
6.8.3 整型(integer)
6.8.4 浮点型(float或double)
6.8.5 字符串(string)
6.8.6 数组(array)
6.8.7 对象(object)
6.8.8 资源类型(resource)
6.8.9 null类型
6.8.10 伪类型介绍
6.9 数据类型之间相互转换
6.9.1 自动类型转换
6.9.2 强制类型转换
6.9.3 类型转换细节
6.9.4 变量类型的测试函数
6.10 常量
6.10.1 常量的定义和使用
6.10.2 常量和变量
6.10.3 系统中的预定义常量
6.10.4 php中的魔术常量
6.11 php中的运算符
6.11.1 算术运算符
6.11.2 字符串运算符
6.11.3 赋值运算符
6.11.4 比较运算符
6.11.5 逻辑运算符
6.11.6 位运算符
6.11.7 其他运算符
6.11.8 运算符的优先级
6.12 表达式
6.13 小结
本章必须掌握的知识点
本章需要了解的内容
本章需要拓展的内容
第7章 php的流程控制结构
7.1 分支结构
7.1.1 单一条件分支结构(if)
7.1.2 双向条件分支结构(else从句)
7.1.3 多向条件分支结构(elseif子句)
7.1.4 多向条件分支结构(switch语句)
7.1.5 巢状条件分支结构
7.1.6 条件分支结构实例应用(简单计算器)
7.2 循环结构
7.2.1 while语句
7.2.2 do…while循环
7.2.3 for语句
7.3 特殊的流程控制语句
7.3.1 break语句
7.3.2 continue语句
7.3.3 exit语句
7.4 小结
本章必须掌握的知识点
本章需要了解的内容
第8章 php的函数应用
8.1 函数的定义
8.2 自定义函数
8.2.1 函数的声明
8.2.2 函数的调用
8.2.3 函数的参数
8.2.4 函数的返回值
8.3 函数的工作原理和结构化编程
8.4 php变量的范围
8.4.1 局部变量
8.4.2 全局变量
8.4.3 静态变量
8.5 声明及应用各种形式的php函数
8.5.1 常规参数的函数
8.5.2 伪类型参数的函数
8.5.3 引用参数的函数
8.5.4 默认参数的函数
8.5.5 可变个数参数的函数
8.5.6 回调函数
8.6 递归函数
8.7 使用自定义函数库
8.8 小结
本章必须掌握的知识点
本章需要了解的内容
本章需要拓展的内容
第9章 php中的数组与数据结构
9.1 数组的分类
9.2 数组的定义
9.2.1 直接赋值的方式声明数组
9.2.2 使用array()语言结构新建数组
9.2.3 多维数组的声明
9.3 数组的遍历
9.3.1 使用for语句循环遍历数组
9.3.2 使用foreach语句遍历数组
9.3.3 联合使用list( )、each( )和while循环遍历数组
9.3.4 使用数组的内部指针控制函数遍历数组
9.4 预定义数组
9.4.1 服务器变量:$_server
9.4.2 环境变量:$_env
9.4.3 url get变量:$_get
9.4.4 http post变量:$_post
9.4.5 request变量:$_request
9.4.6 http文件上传变量:$_files
9.4.7 http cookies:$_cookie
9.4.8 session变量:$_session
9.4.9 global变量:$globals
9.5 数组的相关处理函数
9.5.1 数组的键/值操作函数
9.5.2 统计数组元素的个数和唯一性
9.5.3 使用回调函数处理数组的函数
9.5.4 数组的排序函数
9.5.5 拆分、合并、分解和接合数组
9.5.6 数组与数据结构
9.5.7 其他有用的数组处理函数
9.6 操作php数组需要注意的一些细节
9.6.1 数组运算符号
9.6.2 删除数组中的元素操作
9.6.3 关于数组下标的注意事项
9.7 小结
本章必须掌握的知识点
本章需要了解的内容
本章需要拓展的内容
第10章 php面向对象的程序设计
10.1 面向对象的介绍
10.1.1 类和对象之间的关系
10.1.2 面向对象的程序设计
10.2 如何抽象一个类
10.2.1 类的声明
10.2.2 成员属性
10.2.3 成员方法
10.3 通过类实例化对象
10.3.1 实例化对象
10.3.2 对象类型在内存中的分配
10.3.3 对象中成员的访问
10.3.4 特殊的对象引用“$this”
10.3.5 构造方法与析构方法
10.4 封装性
10.4.1 设置私有成员
10.4.2 私有成员的访问
10.4.3 __set()、__get()、__isset()和__unset()四个方法
10.5 继承性
10.5.1 类继承的应用
10.5.2 访问类型控制
10.5.3 子类中重载父类的方法
10.6 常见的关键字和魔术方法
10.6.1 final关键字的应用
10.6.2 static关键字的使用
10.6.3 单态设计模式
10.6.4 const关键字
10.6.5 instanceof关键字
10.6.6 克隆对象
10.6.7 类中通用的方法__tostring()
10.6.8 __call()方法的应用
10.6.9 自动加载类
10.6.10 对象串行化
10.7 抽象类与接口
10.7.1 抽象类
10.7.2 接口技术
10.8 多态性的应用
10.9 面向对象版图形计算器
10.9.1 需求分析
10.9.2 功能设计及实现
10.9.3 类的组织架构
10.10 小结
本章必须掌握的知识点
本章需要了解的内容
本章需要拓展的内容
第11章 字符串处理
11.1 字符串的处理介绍
11.1.1 字符串的处理方式
11.1.2 字符串类型的特点
11.1.3 双引号中变量解析总结
11.2 常用的字符串输出函数
11.3 常用的字符串格式化函数
11.3.1 去除空格和字符串填补函数
11.3.2 字符串大小写的转换
11.3.3 和html标签相关的字符串格式化
11.3.4 其他字符串格式化函数
11.4 字符串比较函数
11.4.1 按字节顺序进行字符串比较
11.4.2 按自然排序进行字符串比较
11.5 小结
本章必须掌握的知识点
本章需要拓展的内容
第12章 正则表达式
12.1 正则表达式简介
12.1.1 选择php正则表达式的处理函数库
12.2 正则表达式的语法规则
12.2.1 定界符
12.2.2 原子
12.2.3 元字符
12.2.4 模式修正符
12.3 与perl兼容的正则表达式函数
12.3.1 字符串的匹配与查找
12.3.2 字符串的替换
12.3.3 字符串的分割和连接
12.4 文章发布操作示例
12.5 小结
本章必须掌握的知识点
本章需要了解的内容
本章需要扩展的内容
第3部分 php常用功能模块篇
第13章 php的错误和异常处理
13.1 错误处理
13.1.1 错误报告级别
13.1.2 调整错误报告级别
13.1.3 使用trigger_error()函数来替代die()
13.1.4 自定义错误处理
13.1.5 写错误日志
13.2 异常处理
13.2.1 异常处理实现
13.2.2 扩展php内置的异常处理类
13.2.3 捕获多个异常
13.3 小结
本章必须掌握的知识点
本章需要了解的内容
第14章 php的日期和时间
14.1 unix时间戳
14.1.1 将日期和时间转变成unix时间戳
14.1.2 日期的计算
14.2 在php中获取日期和时间
14.2.1 调用getdate()函数取得日期/时间信息
14.2.2 日期和时间格式化输出
14.3 修改php的默认时区
14.4 使用微秒计算php脚本执行时间
14.5 日历类
14.6 小结
本章必须掌握的知识点
本章需要了解的内容
本章需要拓展的内容
本章的学习建议
第15章 文件系统处理
15.1 文件系统概述
15.1.1 文件类型
15.1.2 文件的属性
15.2 目录的基本操作
15.2.1 解析目录路径
15.2.2 遍历目录
15.2.3 统计目录大小
15.2.4 建立和删除目录
15.2.5 复制目录
15.3 文件的基本操作
15.3.1 文件的打开与关闭
15.3.2 写入文件
15.3.3 读取文件内容
15.3.4 访问远程文件
15.3.5 移动文件指针
15.3.6 文件的锁定机制
15.3.7 文件的一些基本操作函数
15.4 文件的上传与下载
15.4.1 文件上传
15.4.2 处理多个文件上传
15.4.3 文件下载
15.5 设计经典的文件上传类
15.5.1 需求分析
15.5.2 程序设计
15.5.3 文件上传类代码实现
15.5.4 文件上传类的应用过程
15.6 小结
本章必须掌握的知识点
本章需要了解的内容
本章需要拓展的内容
本章的学习建议
第16章 php动态图像处理
16.1 php中gd库的使用
16.1.1 画布管理
16.1.2 设置颜色
16.1.3 生成图像
16.1.4 绘制图像
16.1.5 在图像中绘制文字
16.2 设计经典验证码类
16.2.1 设计验证码类
16.2.2 应用验证码类的实例对象
16.2.3 表单中应用验证码
16.2.4 实例演示
16.3 php图片处理
16.3.1 图片背景管理
16.3.2 图片缩放
16.3.3 图片裁剪
16.3.4 添加图片水印
16.3.5 图片旋转和翻转
16.4 设计经典的图像处理类
16.4.1 需求分析
16.4.2 程序设计
16.4.3 图像处理类代码实现
16.4.4 图像处理类的应用过程
16.5 小结
本章必须掌握的知识点
本章需要了解的内容
本章需要拓展的内容
第4部分 数据库开发篇
第17章 mysql数据库概述
17.1 数据库的应用
17.1.1 数据库在web开发中的重要地位
17.1.2 为什么php会选择mysql作为自己的黄金搭档
17.1.3 php和mysql的合作方式
17.1.4 结构化查询语言sql
17.2 mysql数据库的常见操作
17.2.1 mysql数据库的连接与关闭
17.2.2 创建新用户并授权
17.2.3 创建数据库
17.2.4 创建数据表
17.2.5 数据表内容的简单管理
17.3 小结
本章必须掌握的知识点
第18章 mysql数据表的设计
18.1 数据表(table)
18.2 数据值和列类型
18.2.1 数值类的数据列类型
18.2.2 字符串类数据列类型
18.2.3 日期和时间型数据列类型
18.2.4 null值
18.2.5 类型转换
18.3 数据字段属性
18.4 数据表对象管理
18.4.1 创建表(create table)
18.4.2 修改表(alter table)
18.4.3 删除表(drop table)
18.5 数据表的类型及存储位置
18.5.1 myisam数据表
18.5.2 innodb数据表
18.5.3 如何选择innodb还是myisam表类型
18.5.4 数据表的储存位置
18.6 数据表的默认字符集
18.6.1 字符集
18.6.2 字符集支持原理
18.6.3 创建数据对象时修改字符集
18.7 创建索引
18.7.1 主键索引(primary key)
18.7.2 唯一索引(unique)
18.7.3 常规索引(index)
18.7.4 全文索引(fulltext)
18.8 规范化
18.8.1 起点
18.8.2 第一范式
18.8.3 第二范式
18.8.4 第三范式
18.8.5 规范化理论
18.9 数据库的设计技巧
18.9.1 数据库设计要求
18.9.2 起名字的技巧
18.9.3 数据库具体设计工作中的技巧
18.10 小结
本章必须掌握的知识点
本章需要了解的内容
本章需要拓展的内容
第19章 sql语句设计
19.1 操作数据表中的数据记录(dml)
19.1.1 使用insert语句向数据表中添加数据