本书是面向PHP初学者推出的一本入门教材,站在初学者的角度,以通俗易懂的语言、丰富的图解、实用的案例,详细讲解了PHP语言的基础知识。为了顺应技术的更新,本书基于PHP 7.1版本进行讲解,并介绍了PHP 5.4~7.1之间版本的差别,以确保代码的兼容性。
全书共分为16章,其中有12个章节讲解新知识,4个章节为阶段案例。在知识讲解章节,还配备了动手实践,用于将本章所学内容进行练习和巩固,达到即学即练的效果。当学完一个阶段的知识后,通过阶段案例开发功能性强、界面美观、用户体验优秀的项目,如“许愿墙”、“在线相册”、“趣PHP网站”等,将所学知识综合运用到实际开发中,积累项目开发经验。
本书适合作为高等院校本、专科计算机相关专业的教材使用,也可作为PHP爱好者的参考书自学使用,是一本适合广大计算机编程爱好者的优秀读物。
本教材主要有以下特色:
一、技术新颖,易学易用
顺应技术的更新,本书基于PHP 7.1编写,同时介绍了PHP 5.4~7.1之间的区别,满足更多的应用环境。课程讲解语言精练,通俗易懂,注重实际操作、动手实践。
二、知识全面,结构清晰
详细详解了PHP的基础课程,包括开发环境搭建、PHP语法基础、函数、数组、错误处理、Web交互、PHP操作MySQL数据库、正则表达式、文件、图像、面向对象编程和会话等。在进行知识讲解时,不仅介绍基本概念,还将抽象的概念具体化,让读者明白这个知识点能用来解决什么问题,理解每一行代码出现的原因。
三、动手实践,阶段案例
本书遵循知识点的难易度及先后顺序,按照“知识讲解+动手实践+阶段案例”的方式来安排全书的章节,有效引导初学者将学过的内容串起来,培养分析问题和解决问题的能力。讲解阶段案例时,按照“案例展示 → 需求分析 → 案例实现”的方式,将前面学过的知识实践化,使读者能够根据实际功能需求进行编程开发,提高对知识的综合运用能力。
四、教材、资源、服务三合一,高效学习
为了便于老师备课,本教材配备了精美的PPT、教学视频和源代码等资源。本书还有配套题库可以根据需求自由组卷,方便老师考察学生的学习情况。
第1章 PHP开篇 1 1.1 PHP基础知识 2 1.1.1 Web技术 2 1.1.2 PHP概述 2 1.1.3 常用编辑工具 3 1.2 PHP开发环境搭建 4 1.2.1 Apache的安装 4 1.2.2 PHP的安装 8 1.2.3 Web服务器配置 12 动手实践:PHP编程快速体验 17 本章小结 19 课后练习 19 第2章 PHP基本语法 20 2.1 基本语法 21 2.1.1 标记与注释 21 2.1.2 输出语句 23 2.1.3 PHP标识符 23 2.1.4 PHP关键字 23 2.2 数据与运算 24 2.2.1 常量 24 2.2.2 变量 26 2.2.3 表达式 27 2.2.4 数据类型及转换 27 2.2.5 运算符及优先级 33 2.3 流程控制语句 39 2.3.1 选择结构语句 39 2.3.2 循环结构语句 41 2.3.3 跳转语句 44 2.3.4 流程替代语法 46 2.4 文件包含语句 47 动手实践:表格生成器 47 本章小结 51 课后练习 51 第3章 函数 53 3.1 函数的定义与调用 54 3.1.1 初识函数 54 3.1.2 参数设置 55 3.1.3 变量的作用域 57 3.2 函数的嵌套调用 58 3.2.1 嵌套调用 58 3.2.2 递归调用 59 3.3 函数的高级应用 60 3.3.1 静态变量 60 3.3.2 可变函数 60 3.3.3 回调函数 61 3.3.4 匿名函数 61 3.4 PHP的内置函数 62 3.4.1 字符串函数 62 3.4.2 数学函数 65 3.4.3 时间日期函数 66 3.5 PHP手册的使用 67 动手实践:制作年历 70 本章小结 73 课后练习 74 第4章 数组 75 4.1 初识数组 76 4.2 数组的基本使用 76 4.2.1 数组的定义 76 4.2.2 访问数组 78 4.2.3 遍历数组 79 4.2.4 数组的删除 80 4.2.5 数组操作符 81 4.3 数组查找 81 4.3.1 顺序查找法 81 4.3.2 二分查找法 82 4.4 数组排序 83 4.4.1 冒泡排序 84 4.4.2 简单选择排序 85 4.4.3 快速排序 86 4.4.4 插入排序 87 4.5 数组的常用函数 88 4.5.1 指针操作函数 88 4.5.2 数组元素操作函数 90 4.5.3 排序函数 90 4.5.4 检索函数 91 4.5.5 其他数组函数 91 4.6 数组在字符串与函数中的应用 92 4.6.1 字符串与数组的转换 92 4.6.2 函数可变参数列表 93 4.6.3 将数组作为参数调用函数 94 动手实践:找猴王游戏 94 本章小结 96 课后练习 96 第5章 错误处理及调试 97 5.1 错误处理概述 98 5.1.1 常见的错误类型 98 5.1.2 错误级别 98 5.1.3 手动触发错误 100 5.2 如何处理错误 101 5.2.1 显示错误报告 101 5.2.2 记录错误日志 102 5.2.3 自定义错误处理器 103 5.3 PHP的调试工具 104 5.3.1 NetBeans集成开发环境 104 5.3.2 PHP调试工具Xdebug 107 动手实践:获取PHP脚本运行信息 108 本章小结 112 课后练习 112 第6章 阶段案例—Web表单生成器 113 6.1 案例展示 114 6.2 需求分析 114 6.3 案例实现 115 6.3.1 准备表单 115 6.3.2 多维数组保存数据 117 6.3.3 表单的自动生成 119 本章小结 122 第7章 PHP与Web页面交互 123 7.1 Web交互 124 7.1.1 Web表单交互 124 7.1.2 URL参数交互 125 7.1.3 数组方式提交数据 126 7.1.4 HTML特殊字符处理 128 7.2 HTTP协议 131 7.2.1 什么是HTTP 131 7.2.2 查看HTTP消息 131 7.2.3 PHP处理过程 132 7.2.4 HTTP请求消息 134 7.2.5 HTTP响应消息 137 动手实践:利用cURL扩展发送请求 140 本章小结 142 课后练习 142 第8章 PHP操作MySQL数据库 144 8.1 MySQL的安装和使用 145 8.1.1 数据库概述 145 8.1.2 获取MySQL 145 8.1.3 命令安装方式 146 8.1.4 MySQL命令行工具 148 8.2 PHP访问MySQL 152 8.2.1 PHP的相关扩展 152 8.2.2 PHP访问MySQL的基本步骤 153 8.3 MySQLi扩展的使用 153 8.3.1 连接数据库 154 8.3.2 执行SQL语句 155 8.3.3 处理结果集 156 8.3.4 其他操作函数 157 8.4 预处理和参数绑定 159 8.4.1 什么是预处理 159 8.4.2 预处理的实现 160 动手实践:安装phpMyAdmin 162 本章小结 164 课后练习 164 第9章 阶段案例—“许愿墙” 166 9.1 案例展示 167 9.2 需求分析 167 9.3 案例实现 168 9.3.1 准备工作 168 9.3.2 数据库设计 171 9.3.3 “许愿墙”展示 171 9.3.4 分页查询 174 9.3.5 发表愿望 176 9.3.6 修改愿望 179 9.3.7 删除愿望 182 本章小结 183 第10章 正则表达式 184 10.1 什么是正则表达式 185 10.2 正则表达式快速入门 185 10.2.1 如何使用正则表达式 185 10.2.2 正则表达式的组成 186 10.2.3 获取所有匹配结果 187 10.3 正则表达式语法 187 10.3.1 定位符与选择符 188 10.3.2 字符范围与反斜线 188 10.3.3 字符的限定与分组 189 10.3.4 模式修饰符 191 10.4 PCRE兼容正则表达式函数 192 10.4.1 preg_grep()函数 192 10.4.2 preg_replace()函数 193 10.4.3 preg_split()函数 194 动手实践:正则表达式应用案例 195 本章小结 197 课后练习 197 第11章 文件操作 198 11.1 文件操作入门 199 11.1.1 文件读写 199 11.1.2 文件常用操作 202 11.1.3 文件类型和属性 204 11.1.4 目录操作 205 11.1.5 解析路径 207 11.2 文件操作进阶 208 11.2.1 文件指针 208 11.2.2 目录句柄 211 11.2.3 资源流 213 动手实践:文件上传和下载 214 本章小结 218 课后练习 218 第12章 图像技术 219 12.1 PHP图像基础 220 12.1.1 GD库简介 220 12.1.2 常见图片格式 220 12.2 图像的常见操作 222 12.2.1 图像快速入门 222 12.2.2 图像的基本操作 222 12.2.3 绘制基本形状 225 12.2.4 绘制文本 227 12.3 图像的复制与处理 229 12.3.1 图像叠加与缩放 230 12.3.2 图像过滤器 232 动手实践:图像处理的常见案例 234 本章小结 238 课后练习 238 第13章 阶段案例—在线相册 239 13.1 案例展示 240 13.2 需求分析 240 13.3 案例实现 241 13.3.1 准备工作 241 13.3.2 数据库设计 245 13.3.3 相册管理 246 13.3.4 图片上传 252 13.3.5 图片浏览 257 13.3.6 图片搜索 259 13.3.7 其他操作 260 本章小结 265 第14章 面向对象编程 266 14.1 什么是面向对象 267 14.1.1 面向过程与面向对象 267 14.1.2 面向对象中的类与对象 267 14.1.3 面向对象的特征 268 14.2 类与对象的使用 268 14.2.1 类的定义与实例化 268 14.2.2 对象的基本使用 270 14.2.3 构造方法与析构方法 274 14.3 类常量与静态成员 276 14.3.1 类常量 276 14.3.2 静态成员 277 14.4 封装与继承 277 14.4.1 继承 277 14.4.2 封装 280 14.4.3 方法重写 282 14.4.4 final关键字 283 14.5 抽象类与接口 284 14.5.1 抽象类与抽象方法 284 14.5.2 接口 285 14.5.3 多态与类型约束 286 14.6 设计模式 288 14.6.1 单例模式 288 14.6.2 工厂模式 289 动手实践:MySQLi扩展面向对象语法 289 本章小结 291 课后练习 291 第15章 会话技术 293 15.1 会话技术的概述 294 15.2 Cookie技术 294 15.2.1 Cookie简介 294 15.2.2 Cookie基本使用 295 15.2.3 Cookie路径与域名 297 15.3 Session技术 298 15.3.1 Session简介 298 15.3.2 Session基本使用 299 15.3.3 Session机制 300 动手实践:用户登录与退出 304 本章小结 307 课后练习 307 第16章 阶段案例—“趣PHP”网站开发实战 309 16.1 案例展示 310 16.2 需求分析 311 16.3 案例实现 312 16.3.1 准备工作 312 16.3.2 数据库操作类 314 16.3.3 文件上传类 319 16.3.4 用户登录与退出 322 16.3.5 验证码 327 16.3.6 用户注册 330 16.3.7 记住登录状态 332 16.3.8 用户上传头像 335 16.3.9 栏目管理 337 16.3.10 内容发布与修改 342 16.3.11 处理图片和视频 346 16.3.12 内容查看 348 16.3.13 内容删除 350 16.3.14 内容列表 351 16.3.15 发表回复 353 本章小结 356