内容简介
本书以零基础讲解为宗旨,用实例引导读者深入学习,采取“基础入门→核心技术→操作MySQL数据库→项目实训”的讲解模式,深入浅出地讲解PHP 7的各项技术及实战技能。
本书第1篇“基础入门”主要内容包括走进PHP 7的世界、配置PHP服务器环境、PHP的基本语法、函数的应用、程序控制结构、数组、字符串;第2篇“核心技术”主要内容包括正则表达式、PHP与Web页面交互、管理日期和时间、面向对象编程、错误处理和异常处理、操作文件与目录、GD绘图与图像处理、Cookie和会话管理;第3篇“操作MySQL数据库”主要内容包括phpMyAdmin操作MySQL数据库、MySQL数据库与SQL查询、使用MySQLi操作MySQL、使用PDO操作MySQL数据库;第4篇“项目实训”主要内容包括开发验证码系统、开发个人博客系统、开发用户权限系统、开发社区市场系统。
本书适合任何想学习使用PHP+MySQL开发动态网站的人员,无论您是否从事计算机相关行业,无论您是否接触过PHP+MySQL,通过学习均可快速掌握PHP+MySQL开发动态网站的方法和技巧。
前 言
“网站开发案例课堂”系列图书是专门为网页设计和动态网站开发初学者量身定制的一套学习用书。整套书涵盖网页设计、网站开发、数据库设计等方面。整套书具有以下几个特点。
前沿科技
无论是网站建设、数据库设计还是HTML 5、CSS 3、JavaScript、PHP,我们都精选较为前沿或者用户群最大的领域推进,帮助大家认识和了解最新动态。
权威的作者团队
组织国家重点实验室和资深应用专家联手编著该套图书,融合丰富的教学经验与优秀的管理理念。
学习型案例设计
以技术的实际应用过程为主线,全程采用图解和同步多媒体结合的教学方式,生动、直观、全面地剖析使用过程中的各种应用技能,降低难度,提升学习效率。
为什么要写这样一本书
PHP是世界上最为流行的Web开发语言之一。目前学习和关注PHP的人越来越多,而很多PHP的初学者都苦于找不到一本通俗易懂、容易入门和案例实用的参考书。为此,作者组织有丰富经验的开发人员编写了这本书。通过本书的实训,读者可以很快地学会开发动态网站,提高职业化能力,从而帮助解决公司与求职者的双重需求问题。
本书特色
零基础、入门级的讲解
无论您是否从事计算机相关行业,无论您是否接触过PHP+MySQL动态网站开发,都能从本书中找到最佳起点。
超多、实用、专业的范例和项目
本书在编排上紧密结合深入学习网页制作技术的先后过程,从PHP 7的基本概念开始,逐步带领大家深入地学习各种应用技巧,侧重实战技能,使用简单易懂的实际案例进行分析和操作指导,让读者读起来简明轻松,操作起来有章可循。
随时检测自己的学习成果
内容讲解章节最后的“疑难解惑”板块,均根据本章内容精选而成,从而帮助读者解决自学过程中最常见的疑难问题。
细致入微、贴心提示
本书在讲解过程中,在各章中使用了“注意”“提示”“技巧”等小贴士,使读者在学习过程中更清楚地了解相关操作、理解相关概念,并轻松掌握各种操作技巧。
专业创作团队和技术支持
您在学习过程中遇到任何问题,均可加入QQ群(案例课堂VIP)451102631进行提问,专家人员会在线答疑。
超值资源大放送
全程同步教学录像
涵盖本书所有知识点,详细讲解每个实例及项目的过程及技术关键点。可以使读者比看书更轻松地掌握书中所有的动态网站开发知识,而且扩展的讲解部分使您得到比书中更多的收获。
超多容量王牌资源
赠送大量王牌资源,包括本书实例源代码、教学幻灯片、本书精品教学视频、16个经典项目开发完整源代码、常用SQL语句速查手册、MySQLi函数速查手册、PHP 7废弃特性速查手册、PHP 7的新功能速查手册、PHP常用函数速查手册、PHP网站开发工程师面试技巧、PHP网站开发工程师常见面试题、优秀网站开发工程师之路——网站开发经验及技巧大汇总等。读者可以通过QQ群(案例课堂VIP)451102631获取赠送资源,也可以扫描二维码,下载本书资源。
读者对象
没有任何网页设计基础的初学者。
有一定的PHP 7基础,想精通PHP 7动态网站开发的人员。
有一定的PHP 7网页设计基础,没有项目经验的人员。
正在进行毕业设计的学生。
大专院校及培训学校的老师和学生。
创作团队
本书由刘春茂编著,参加编写的人员还有刘玉萍、张金伟、蒲娟、周佳、付红、李园、郭广新、侯永岗、王攀登、刘海松、孙若淞、王月娇、包慧利、陈伟光、胡同夫、王伟、展娜娜、李琪、梁云梁和周浩浩。在编写过程中,我们竭尽所能地将最好的讲解呈现给读者,但也难免有疏漏和不妥之处,敬请不吝指正。若您在学习中遇到困难或疑问,或有任何建议,可写信至信箱357975357@qq.com。
编 者
目 录
第1篇 基础入门 1第1章 初识庐山真面目——走进PHP 7的世界 31.1 认识PHP 41.1.1 什么是PHP 41.1.2 PHP的发展历程 41.1.3 PHP语言的优势 51.2 PHP能干什么 51.3 常用的开发利器 61.3.1 PHP代码开发工具 61.3.2 网页设计工具 71.3.3 文本编辑工具 71.4 PHP 7的新特征 81.5 如何能学好PHP 7 101.6 疑难解惑 11第2章 开发前必备工作——配置PHP服务器环境 132.1 PHP服务器概述 142.2 安装PHP前的准备工作 142.2.1 软硬件环境 142.2.2 实例1——获取PHP 7.1安装资源包 152.3 PHP +IIS服务器的安装配置 162.3.1 实例2——IIS简介及安装 162.3.2 实例3——PHP的安装 172.3.3 实例4——设置虚拟目录 202.4 PHP+Apache服务器的环境搭建 212.4.1 Apache简介 212.4.2 实例5——关闭原有的网站服务器 212.4.3 实例6——安装Apache 222.4.4 实例7——将PHP与Apache建立关联 242.5 新手的福音——安装WampServer集成开发环境 252.6 案例实战——测试第一个PHP程序 272.7 疑难解惑 28第3章 零基础开始学习——PHP的基本语法 313.1 PHP语言标识 323.2 熟悉编码规范 323.2.1 什么是编码规范 333.2.2 PHP的一些编码规范 333.3 常量 353.3.1 声明和使用常量 353.3.2 使用系统预定义常量 353.4 变量 373.4.1 PHP中的变量声明 373.4.2 可变变量和变量的引用 383.4.3 变量作用域 393.4.4 变量的销毁 413.5 理解变量的类型 423.5.1 什么是类型 423.5.2 整型 423.5.3 浮点型 433.5.4 布尔型 433.5.5 字符串型 433.5.6 数组型 443.5.7 对象型 453.5.8 NULL型 463.5.9 资源类型 463.5.10 数据类型之间的相互转换 463.6 PHP 7的新变化——声明标量类型和函数返回值类型 473.7 使用运算符 483.7.1 算术运算符 483.7.2 字符串连接符 493.7.3 赋值运算符 503.7.4 比较运算符 503.7.5 逻辑运算符 523.7.6 按位运算符 523.7.7 否定控制运算符 523.7.8 错误控制运算符 523.7.9 三元运算符 533.7.10 运算符的优先级和结合规则 533.8 PHP 7的新变化——合并运算符和组合运算符 533.9 PHP中的表达式 543.10 创建多维数组 553.11 疑难解惑 55第4章 实现定制功能——函数的应用 574.1 认识函数 584.2 内置函数 584.2.1 数学函数 584.2.2 变量相关的函数 594.3 自定义函数 614.3.1 定义和调用函数 614.3.2 向函数传递参数值 614.3.3 向函数传递参数引用 624.3.4 从函数中返回值 634.3.5 引用函数 634.3.6 取消函数引用 644.3.7 变量函数 654.4 PHP 7的新变化——新增intdiv()函数 654.5 包含文件 664.5.1 require和include 664.5.2 include_once和require_once 674.6 疑难解惑 67第5章 程序的执行方向——程序控制结构 695.1 流程控制概述 705.2 条件控制结构 705.2.1 单一条件分支结构(if语句) 705.2.2 双向条件分支结构(if…else语句) 715.2.3 多向条件分支结构(elseif语句) 725.2.4 多向条件分支结构(switch 语句) 735.3 循环控制结构 745.3.1 while循环语句 745.3.2 do...while循环语句 755.3.3 for循环语句 765.3.4 foreach循环语句 775.3.5 流程控制的另一种书写格式 775.3.6 使用break/continue语句跳出循环 795.4 案例实战1——条件分支结构的应用 805.5 案例实战2——循环控制结构的应用 825.7 疑难解惑 83第6章 特殊的元素集合——数组 856.1 什么是数组 866.2 数组类型 866.2.1 数字索引数组 866.2.2 关联索引数组 876.3 数组的结构 876.3.1 一维数组 876.3.2 多维数组 886.4 遍历数组 906.4.1 遍历一维数字索引数组 906.4.2 遍历一维联合索引数组 906.4.3 遍历多维数组 916.5 数组排序 926.5.1 一维数组排序 926.5.2 多维数组排序 946.6 字符串与数组的转换 956.7 向数组中添加和删除元素 966.7.1 向数组中添加元素 966.7.2 从数组中删除元素 976.8 查询数组中的指定元素 986.9 统计数组元素的个数 1006.10 删除数组中重复的元素 1016.11 调换数组中的键值和元素值 1026.12 数组的序列化 1036.13 疑难解惑 104第7章 不可不说的文本数据——字符串 1057.1 字符串的单引号和双引号 1067.2 字符串的连接符 1077.3 字符串的基本操作 1087.3.1 手动和自动转义字符串中的字符 1087.3.2 计算字符串的长度 1087.3.3 字符串单词统计 1097.3.4 清理字符串中的空格 1097.3.5 字符串的切分与组合 1107.3.6 字符串子串的截取 1117.3.7 字符串子串的替换 1127.3.8 字符串查找 1127.4 疑难解惑 113第2篇 核心技术 115第8章 匹配文本有妙招——正则表达式 1178.1 什么是正则表达式 1188.2 正则表达式的语法规则 1188.2.1 方括号([ ]) 1188.2.2 连字符(-) 1188.2.3 点号字符(.) 1188.2.4 限定符(+*?{n,m}) 1188.2.5 行定位符(^和$) 1198.2.6 排除字符([^]) 1198.2.7 括号字符(()) 1198.2.8 选择字符(|) 1198.2.9 转义字符与反斜杠 1198.2.10 认证E-mail的正则表达式 1198.3 Perl 兼容正则表达式函数 1208.3.1 使用正则表达式对字符串进行匹配 1208.3.2 使用正则表达式替换字符串的子串 1228.3.3 使用正则表达式切分字符串 1228.4 案例实战——创建商品在线订单页面 1238.5 疑难解惑 126第9章 表单的动态效果——PHP与Web页面交互 1279.1 创建动态内容 1289.2 表单与PHP 1289.3 设计表单元素 1299.3.1 表单的基本结构 1299.3.2 文本框 1299.3.3 复选框 1309.3.4 单选按钮 1329.3.5 下拉列表 1339.3.6 重置按钮和提交按钮 1349.4 传递数据 1379.4.1 用POST方式传递数据 1379.4.2 用GET方式传递数据 1379.5 PHP获取表单传递数据的方法 1389.6 PHP对URL传递的参数进行编码 1399.7 案例实战——团购商品订单表 1409.8 疑难解惑 141第10章 时间很重要——管理日期和时间 14310.1 系统时区的设置 14410.1.1 时区划分 14410.1.2 时区设置 14410.2 PHP的日期和时间函数 14410.2.1 关于UNIX时间戳 14410.2.2 获取当前的时间戳 14510.2.3 获取当前的日期和时间 14510.2.4 使用时间戳获取日期信息 14610.2.5 检验日期的有效性 14910.2.6 输出格式化时间戳的日期和时间 14910.2.7 显示本地化的日期和时间 15110.2.8 将日期和时间解析为UNIX时间戳 15210.2.9 日期时间在PHP和MySQL数据格式之间的转换 15210.3 案例实战1——实现倒计时功能 15310.4 案例实战2——比较两个时间的大小 15310.5 疑难解惑 154第11章 主流的编程思想——面向对象编程 15511.1 类和对象的介绍 15611.2 类的基本操作 15711.2.1 类的声明 15711.2.2 成员属性 15711.2.3 成员方法 15811.2.4 类的实例化 15811.2.5 访问类中的成员属性和方法 15911.3 构造方法和析构方法 16011.4 访问器 16111.5 类的继承 16311.6 抽象类和接口 16311.6.1 抽象类 16411.6.2 接口 16511.7 面向对象的多态性 16611.7.1 通过继承实现多态 16611.7.2 通过接口实现多态 16711.8 PHP 7的新变化——支持匿名类 16811.9 疑难解惑 169第12章 不可避免的问题——错误处理和异常处理 17112.1 常见的错误和异常 17212.2 错误处理 17512.2.1 php.ini中的错误处理机制 17512.2.2 应用DIE语句进行调试 17512.2.3 自定义错误和错误触发器 17612.2.4 错误记录 17912.3 PHP 7新变化——改变了错误的报告方式 18012.4 异常处理 18012.4.1 异常的基本处理方法 18012.4.2 自定义的异常处理器 18212.4.3 处理多个异常 18312.4.4 设置顶层异常处理器 18412.5 案例实战——处理异常或错误 18512.6 疑难解惑 186第13章 与外界的交流——操作文件与目录 18713.1 查看文件和目录 18813.1.1 查看文件名称 18813.1.2 查看目录名称 18813.1.3 查看文件真实目录 18913.2 查看文件信息 18913.2.1 查看文件的类型 18913.2.2 查看文件的访问和修改时间 19013.3 文件操作 19013.3.1 打开文件和关闭文件 19013.3.2 读取文件 19113.3.3 文件数据写入 19313.3.4 重命名和移动文件 19413.3.5 复制文件 19513.3.6 删除文件 19513.4 目录操作 19613.5 上传文件 20013.5.1 全局变量$_FILES 20013.5.2 文件上传 20013.6 案例实战——编写访客计数器 20213.7 疑难解惑 203第14章 图形界面设计——GD绘图与图像处理 20514.1 在PHP中加载GD库 20614.2 图形图像的典型应用案例 20814.2.1 创建一个简单的图像 20914.2.2 使用GD2的函数在图片上添加文字 21014.2.3 使用TrueType字体处理中文生成图片 21114.3 Jpgraph库的基本操作 21314.3.1 Jpgraph的安装 21414.3.2 Jpgraph的配置 21414.4 案例实战1——制作圆形统计图 21514.5 案例实战2——制作3D饼形统计图 21714.6 疑难解惑 218第15章 保持HTTP连接状态——Cookie和会话管理 22115.1 Cookie的基本操作 22215.1.1 什么是Cookie 22215.1.2 创建Cookie 22215.1.3 读取Cookie 22315.1.4 删除Cookie 22415.2 认识Session 22515.2.1 什么是Session 22515.2.2 Session的基本功能 22615.2.3 Cookie与Session 22615.2.4 储存Session ID在Cookie或URL中 22615.3 会话管理 22615.3.1 创建会话 22715.3.2 注册会话变量 22715.3.3 使用会话变量 22815.3.4 注销和销毁会话变量 22815.4 案例实战——综合应用会话管理 22915.5 疑难解惑 230第3篇 操作MySQL数据库 231第16章 管理MySQL的利器——phpMyAdmin操作MySQL数据库 23316.1 什么是MySQL 23416.1.1 客户-服务器软件 23416.1.2 数据库的原理 23416.1.3 MySQL版本 23516.1.4 MySQL的优势 23616.2 创建MySQL数据库和数据表 23616.2.1 启动phpMyAdmin管理程序 23616.2.2 创建数据库 23716.2.3 认识数据表的字段 23816.2.4 创建数据表 24016.2.5 添加数据 24216.3 加密MySQL数据库 24316.3.1 MySQL数据库的安全问题 24316.3.2 为MySQL管理账号加上密码 24316.4 数据库的备份与还原 24516.4.1 数据库的备份 24516.4.2 数据库的还原 24616.5 疑难解惑 248第17章 数据库编程——MySQL数据库与SQL查询 24917.1 安装与配置MySQL 5.7 25017.1.1 安装MySQL 5.7 25017.1.2 配置MySQL 5.7 25217.2 启动服务并登录MySQL数据库 25517.2.1 启动MySQL服务 25517.2.2 登录MySQL数据库 25617.3 MySQL数据库的基本操作 25817.3.1 创建数据库 25817.3.2 查看数据库 25817.3.3 删除数据库 25917.3.4 选择数据库 25917.4 MySQL数据表的基本操作 25917.4.1 创建数据表 26017.4.2 查看数据表的结构 26117.4.3 修改数据表结构 26217.4.4 删除数据表 26317.5 MySQL语句的操作 26317.5.1 插入记录 26317.5.2 查询记录 26417.5.3 修改记录 26517.5.4 删除记录 26517.6 MySQL数据库的备份与还原 26517.6.1 数据备份 26517.6.2 数据还原 27217.7 疑难解惑 274第18章 最经典的方法——使用MySQLi操作MySQL 27518.1 PHP访问MySQL数据库的一般步骤 27618.2 连接数据库前的准备工作 27618.3 PHP操作MySQL数据库 27718.3.1 连接MySQL服务器 27718.3.2 选择数据库 27818.3.3 创建数据库 27918.3.4 创建数据表 28118.3.5 添加数据 28218.3.6 一次插入多条数据 28418.3.7 读取数据 28518.3.8 释放资源 28718.3.9 关闭连接 28718.4 案例实战1——动态添加员工信息 28718.5 案例实战2——动态查询数据信息 28918.6 提升安全性——防止SQL注入的攻击 29018.7 疑难解惑 292第19章 最兼容的方法——使用PDO操作MySQL数据库 29319.1 认识PDO 29419.2 PDO的安装 29419.3 使用PDO操作MySQL 29519.3.1 连接MySQL数据库 29619.3.2 创建数据库 29719.3.3 创建数据表 29819.3.4 添加数据 29919.3.5 一次插入多条数据 30019.3.6 读取数据 30019.4 提升安全性——防止SQL注入的攻击 30219.5 疑难解惑 303第4篇 项目实训 305第20章 项目实训1——开发验证码系统 30720.1 系统分析 30820.1.1 学习目标 30820.1.2 需求分析 30820.1.3 系统文档 30820.2 系统的代码实现 30920.2.1 系统主界面 30920.2.2 生成并输入验证码功能 31120.2.3 验证码控制器 31120.3 系统测试 313第21章 项目实训2——开发个人博客系统 31521.1 系统的需求分析 31621.1.1 学习目标 31621.1.2 需求分析 31621.1.3 系统文档 31621.2 数据库分析 31721.2.1 分析数据库 31721.2.2 创建数据表 31721.3 个人博客系统的代码实现 31821.3.1 博客数据模型的文件 31821.3.2 个人博客系统的主页面 32221.3.3 个人博客新建和修改页面 32421.3.4 个人博客删除页面 32621.4 系统测试 327第22章 项目实训3——开发用户权限系统 32922.1 必备知识 330