第1章PHP概述与开发运行环境搭建/1 1.1PHP概述 1 1.1.1何谓PHP1 1.1.2PHP优势1 1.1.3PHP运行环境2 1.1.4PHP的工作原理3 1.1.5如何学好PHP编程4 1.2网站与网页5 1.2.1网站的基本概念5 1.2.2网站常用开发技术6 1.3网页中的HTML6 1.3.1HTML基础知识6 1.3.2HTML表单11 1.3.3表单数据的接收14 1.4集成开发环境搭建15 1.4.1PHP运行环境XAMPP的安装15 1.4.2PHP开发常见编辑工具21 1.4.3NetBeans的安装与使用22 思考与练习30 第2章PHP语法基础/32 2.1PHP基本语法32 2.1.1PHP标记32 2.1.2编码规范33 2.1.3代码注释36 2.1.4PHP语句及语句块38 2.1.5PHP标识符与关键字38 2.1.6PHP大小写敏感39 2.2PHP常量及预定义常量39 2.2.1声明和使用常量40PHP网站开发与设计目录2.2.2预定义常量41 2.3PHP变量43 2.3.1声明变量 43 2.3.2变量赋值43 2.3.3可变变量45 2.3.4外部变量45 2.3.5变量或常量数据类型查看函数46 2.4PHP数据类型48 2.4.1标量数据类型48 2.4.2复合数据类型52 2.4.3特殊数据类型54 2.4.4伪类型55 2.4.5转换数据类型56 2.4.6检测数据类型58 2.4.7PHP数据的输出59 2.5PHP运算符60 2.5.1算术运算符61 2.5.2字符串运算符61 2.5.3赋值运算符62 2.5.4自增或自减运算符63 2.5.5逻辑运算符63 2.5.6比较运算符64 2.5.7条件运算符65 2.5.8NULL合并运算符66 2.5.9组合比较运算符66 2.5.10位运算符66 2.5.11错误控制运算符67 2.5.12运算符的使用规则67 2.6表达式与语句68 思考与练习68 第3章PHP流程控制语句/71 3.1PHP的3种控制结构 71 3.1.1顺序结构71 3.1.2选择结构72 3.1.3循环结构72 3.2条件控制语句73 3.2.1if条件控制语句73 3.2.2switch多分支语句76 3.3循环控制语句78 3.3.1while循环语句78 3.3.2do…while循环语句79 3.3.3for循环语句80 3.3.4foreach循环语句82 3.4跳转语句83 3.4.1break跳转语句83 3.4.2continue跳转语句84 3.4.3return语句85 3.4.4exit语句85 3.5PHP文件间包含86 3.5.1include()函数86 3.5.2include()函数和require()函数的区别87 3.5.3include_once()函数88 思考与练习90 第4章PHP函数/91 4.1函数91 4.1.1定义和调用函数91 4.1.2在函数间传递参数92 4.1.3从函数中返回值94 4.1.4变量函数94 4.1.5对函数的引用95 4.1.6取消引用96 4.1.7变量作用域96 4.1.8函数的高级调用98 4.2PHP变量函数库102 4.3字符串与PHP字符串函数库104 4.3.1初识字符串104 4.3.2去掉字符串首尾空格和特殊字符104 4.3.3截取字符串105 4.3.4分隔、合成字符串106 4.3.5MD5加密函数107 4.4PHP日期和时间函数库108 4.4.1系统时区设置108 4.4.2格式化日期和时间109 4.4.3获取日期和时间信息109 4.5正则表达式与相关函数110 4.5.1正则表达式的基本知识110 4.5.2正则表达式在PHP中的应用114 4.5.3正则表达式在JavaScript中的应用119 4.5.4正则表达式的其他特性120 思考与练习121 第5章PHP数组应用/124 5.1数组的基本概念124 5.1.1为什么引入数组124 5.1.2数组的概念125 5.1.3数组的类型125 5.2声明数组126 5.2.1用户创建数组126 5.2.2函数创建数组127 5.2.3创建二维数组128 5.3数组遍历与输出129 5.3.1访问数组元素129 5.3.2数组遍历方式131 5.3.3通过数组指针遍历数组134 5.3.4数组元素输出136 5.4数组的处理函数136 5.4.1获取数组中的最后一个元素136 5.4.2删除数组中的重复元素136 5.4.3获取数组中指定元素的键名 137 5.4.4数组键与值的排序138 5.4.5字符串与数组的转换139 5.5预定义数组140 5.5.1服务器变量: $_SERVER140 5.5.2环境变量: $_ENV140 5.5.3URL GET变量: $_GET140 5.5.4HTTP POST变量: $_POST141 5.5.5Request变量: $_REQUEST142 5.5.6HTTP文件上传变量: $_FILES142 5.5.7HTTP Cookie变量: $_COOKIE143 5.5.8Session变量: $_SESSION144 5.5.9Global变量: $GLOBALS144 思考与练习145 第6章Web互动与会话技术/147 6.1Web服务器交互原理147 6.2页面间的参数传递方式147 6.3浏览器端数据提交方式148 6.3.1GET提交方式148 6.3.2POST提交方式149 6.3.3两种提交方式的比较150 6.3.4PHP获取表单信息151 6.4在PHP脚本中使用JavaScript编程151 6.4.1JavaScript脚本的使用151 6.4.2数据类型和变量152 6.4.3弹出警告对话框152 6.4.4弹出确认对话框153 6.4.5document对象153 6.4.6弹出新窗口155 6.5Cookie管理156 6.5.1了解Cookie 156 6.5.2创建Cookie157 6.5.3读取Cookie158 6.5.4删除Cookie159 6.5.5Cookie的生命周期160 6.6Session管理160 6.6.1了解Session160 6.6.2创建Session161 6.6.3Session设置时间163 6.7Session高级应用164 6.7.1Session临时文件164 6.7.2Session缓存165 6.8PHP页面跳转165 6.8.1header()函数165 6.8.2meta标签166 6.8.3JavaScript脚本166 6.8.4在HTML标记中实现跳转167 思考与练习167 第7章MySQL数据库/170 7.1MySQL概述170 7.1.1MySQL的特点170 7.1.2SQL和MySQL170 7.2操作MySQL数据库171 7.2.1创建新数据库 171 7.2.2选择指定数据库171 7.2.3删除指定数据库 172 7.3操作MySQL数据表 172 7.3.1创建一个表172 7.3.2查看数据表结构173 7.3.3修改数据表结构 174 7.3.4重命名数据表175 7.3.5删除指定数据表 175 7.4操作MySQL数据175 7.4.1向数据表中添加数据175 7.4.2更新数据表中数据176 7.4.3删除数据表中数据176 7.4.4查询数据表中数据177 7.5MySQL数据类型181 7.5.1数字类型181 7.5.2字符串类型181 7.5.3日期和时间类型181 7.6phpMyAdmin图形化管理工具182 7.6.1管理数据库182 7.6.2管理数据表184 7.6.3管理数据记录185 7.6.4导入/导出数据190 思考与练习191 第8章PHP操作MySQL数据库/195 8.1PHP操作MySQL数据库的一般步骤195 8.2PHP显示MySQL数据库数据的函数应用196 8.2.1建立与MySQL数据库服务器的连接196 8.2.2显示MySQL数据库中的数据198 8.2.3数据分页显示的原理及实现208 8.3PHP更新MySQL数据库数据的函数应用212 8.3.1从页面获取数据并插入数据库212 8.3.2根据表单内容修改数据库数据214 8.3.3删除数据库数据219 8.4PHP操作MySQL数据库常见错误及分析221 8.5mysql函数与mysqli函数连接数据库的区别与用法222 思考与练习223 第9章PHP面向对象编程/225 9.1类与对象225 9.1.1什么是类225 9.1.2对象的由来225 9.1.3面向对象的特点226 9.2类的声明227 9.2.1类的定义227 9.2.2成员变量227 9.2.3成员方法228 9.3类的实例化229 9.3.1创建对象229 9.3.2访问类的成员230 9.3.3特殊的访问方法——$this和::231 9.3.4构造函数和析构函数233 9.4面向对象的封装性235 9.4.1public关键字235 9.4.2private关键字236 9.4.3protected关键字236 9.4.4静态变量与静态方法237 9.5面向对象的继承性239 9.5.1类的继承——extends关键字239 9.5.2类的继承——parent关键字240 9.5.3覆盖父类方法240 9.5.4final关键字241 9.6抽象类和接口242 9.6.1抽象类242 9.6.2接口244 9.7面向对象的多态性246 9.7.1通过继承实现多态246 9.7.2通过接口实现多态 247 9.8面向对象的魔术方法248 9.8.1__set()和__get()方法248 9.8.2__isset()和__unset()方法249 9.8.3__call()方法249 9.8.4__toString()方法250 9.8.5__autoload()方法 251 9.8.6__clone()方法252 9.9两种常见的设计模式253 9.9.1单例模式253 9.9.2工厂模式255 思考与练习256 第10章基于PDO数据库抽象层/258 10.1什么是PDO258 10.1.1PDO概述258 10.1.2PDO的特点258 10.1.3安装PDO259 10.2PDO连接数据库259 10.2.1PDO构造函数260 10.2.2DSN详解260 10.3在PDO中执行SQL语句261 10.3.1exec()方法261 10.3.2query()方法262 10.3.3预处理语句——prepare()和execute()方法263 10.4在PDO中获取结果集265 10.4.1fetch()方法265 10.4.2fetchAll()方法267 10.4.3fetchColumn()方法268 10.5在PDO中捕获SQL语句中的错误269 10.5.1使用默认模式269 10.5.2使用警告模式271 10.5.3使用异常模式272 10.6在PDO中处理错误275 10.6.1errorCode()方法275 10.6.2errorInfo()方法276 思考与练习277 第11章PHP与MVC开发模式/279 11.1什么是MVC模型279 11.2MVC模型的组成280 11.2.1控制器280 11.2.2模型280 11.2.3视图281 11.3PHP开发中的模板技术281 11.3.1模板与模板引擎281 11.3.2在PHP程序中使用模板282 11.3.3Smarty模板引擎的概念284 11.3.4Smarty模板引擎的工作原理284 11.3.5Smarty模板引擎的使用285 11.4常见的基于MVC的PHP开发框架简介286 11.4.1CodeIgniter287 11.4.2CakePHP287 11.4.3Zend Framework288 11.4.4FleaPHP288 11.5CodeIgniter框架应用289 11.5.1CodeIgniter的技术特点289 11.5.2安装CodeIgniter289 11.5.3CodeIgniter的Controller类290 11.5.4CodeIgniter的Model类292 11.5.5CodeIgniter的View类293 11.6ThinkPHP框架的应用295 11.6.1ThinkPHP的安装与项目创建295 11.6.2项目的创建296 11.6.3项目的配置297 11.6.4控制器类的创建297 11.6.5模型类的创建301 11.6.6模板文件的编写302 11.7ThinkPHP应用实例——在线日程表307 11.7.1数据库的设计307 11.7.2模板的设计307 11.7.3控制器的实现309 思考与练习311 第12章文件和目录操作/312 12.1文件概述312 12.1.1文件类型312 12.1.2文件的常见属性313 12.2基本的文件操作315 12.2.1打开文件315 12.2.2读取文件内容317 12.2.3向文件中写入数据321 12.2.4关闭文件指针323 12.2.5文件的其他操作323 12.3常用目录操作323 12.3.1打开指定目录324 12.3.2读取目录结构324 12.3.3关闭目录指针325 12.4文件上传处理326 12.4.1相关设置326 12.4.2全局变量 $_FILES应用326 12.4.3文件上传与处理函数327 12.4.4多文件上传329 12.4.5文件下载330 思考与练习331 第13章PHP图形图像处理/332 13.1了解GD2函数库332 13.2设置GD2函数库332 13.3常用的图像处理333 13.3.1创建画布333 13.3.2颜色处理334 13.3.3绘制文字335 13.3.4输出图像338 13.3.5销毁图像339 13.4运用Jpgraph类库绘制图像340 13.4.1Jpgraph类库简介340 13.4.2Jpgraph类库的安装340 13.4.3柱状图分析产品月销售量341 13.4.4折线图分析网站一天内的访问走势342 13.4.53D饼状图展示不同月份的业绩344 思考与练习345 第14章程序调试与错误处理/346 14.1程序调试的基本流程346 14.2常见错误类型347 14.2.1语法错误347 14.2.2语义错误349 14.2.3逻辑错误349 14.2.4注释错误350 14.2.5运行错误350 14.3错误处理机制351 14.3.1控制错误显示及显示方式351 14.3.2控制错误级别351 14.4常用程序调试方法352 14.4.1应用die()函数进行调试352 14.4.2应用mysql_error()函数输出SQL语句的错误353 14.4.3应用try…catch语句抛出并捕获异常354 14.5错误处理技巧355 14.5.1用“@”符号隐藏错误355 14.5.2自定义错误信息356 思考与练习356 参考文献/358