- 中国铁道出版社
- 9787113312206
- 2-1
- 531524
- 67259335-7
- 16开
- 2024-08
- 计算机类
- 高职
作者简介
内容简介
本书为“十四五”高等职业教育计算机类专业系列教材之一,全面讲述了 PHP 程序开发的相关基础知识和详细技术。全书共分 12 章,包括 PHP 概述、基本语法、PHP 函数、PHP 数组、PHP面向对象编程、PHP 与 Web 页面交互、PHP 的 Cookie 和 Session 技术、PHP 正则表达式、MySQL数据库、PHP 操作数据库等内容,最后给出 PHP 用户注册与登录、PHP 留言板制作两个完整的开发实例。
本书内容丰富、结构合理、思路清晰、语言简练流畅、示例翔实,共提供了 223 个实例。
本书适合作为高等职业教育本、专科层次网站设计与制作、Web 编程及其相关课程的教材,还可作为 Web 应用开发人员的参考书。
本书内容丰富、结构合理、思路清晰、语言简练流畅、示例翔实,共提供了 223 个实例。
本书适合作为高等职业教育本、专科层次网站设计与制作、Web 编程及其相关课程的教材,还可作为 Web 应用开发人员的参考书。
目录
第 1 章PHP 概述 1
1.1 Web 程序工作原理 1
1.2 PHP 简介 5
1.2.1什么是 PHP 5
1.2.2 PHP 可以做什么 5
1.2.3 PHP 的特点 5
1.2.4 PHP 的优点 6
1.2.5 PHP 常用编译工具 6
1.3 PHP 开发环境的搭建 7
1.3.1 分别安装 Apache+PHP+MySQL 搭建PHP 开发环境 7
实例 1-1 Apache 的安装与测试 7
实例 1-2 PHP 的安装与测试 9
实例 1-3 MySQL 的安装 14
1.3.2 PHP 集成开发环境的搭建 20
实例 1-4 PHP 集成开发环境的安装与测试 20
小结 26
习题 26
第 2 章基本语法 27
2.1 PHP 代码标记 27
2.2 PHP 文本注释 28
2.3 PHP 输出函数 29
2.3.1 echo( ) 函数 29
2.3.2 print( ) 函数 29
2.3.3 printf( ) 函数 29
2.3.4 sprintf( ) 函数 30
2.4 PHP 变量 31
2.4.1 变量的命名规则 31
2.4.2 变量的赋值 31
实例 2-1应用传值赋值 32
实例 2-2应用引用赋值 32
2.4.3变量的作用域 33
实例 2-3局部变量的使用 33
实例 2-4应用全局变量(在函数内部引用函数外部的参数) 33
实例 2-5应用全局变量(在函数外部引用函数内部的参数) 34
实例 2-6应用静态变量 34
实例 2-7可变变量的使用 35
2.4.4 变量的数据类型 36
实例 2-8整型数据的用法 36
实例 2-9浮点型数据的用法 36
实例 2-10布尔型数据的用法 37
实例 2-11双引号、单引号、定界符的使用 37
实例 2-12{}和 . 在字符串中的使用 38
实例 2-13一个简单 PHP 数组的应用实例 39
实例 2-14类和对象的应用实例 39
实例 2-15应用资源数据类型的实例 40
实例 2-16 NULL 数据类型的用法 40
2.4.5变量类型的转换 40
实例 2-17自动类型转换 41
实例 2-18其他数据类型转换为整型 42
实例 2-19浮点型数据向整型数据转换 43
实例 2-20浮点型数据除法运算 43
实例 2-21将其他数据类型转换为浮点型 44
实例 2-22将其他数据类型转换为布尔型 45
实例 2-23将其他数据类型转换为字符串 46
实例 2-24将其他数据类型转换为数组 47
实例 2-25将其他数据类型转换为对象 47
2.4.6 变量的常用函数 48
实例 2-26使用 settype( ) 函数指定变量类型 48
实例2-27使用intval( )函数、floatval( )函数、strval( ) 函数实现数据转换 49
实例 2-28 isset( ) 函数检查变量是否存在 49
实例 2-29 empty( ) 函数检查变量值是否为空 50
实例 2-30使用判断变量类型函数 51
实例 2-31使用 gettype( ) 函数获取变量类型 51
实例 2-32使用 var_dump( ) 函数打印变量信息 52
实例 2-33使用 var_export( ) 函数输出或返回字符串 52
实例 2-34使用 unset( ) 函数销毁变量 53
2.5 PHP 常量 53
2.5.1自定义常量 53
实例 2-35使用 define( ) 函数定义常量 53
2.5.2预定义常量 54
2.6运算符 54
2.6.1算术运算符 54
实例 2-36算术运算符的使用 55
2.6.2 递增/递减运算符 55
实例 2-37递增 / 递减运算符的使用 55
2.6.3 赋值运算符 56
实例 2-38赋值运算符的使用 56
2.6.4 比较运算符 57
实例 2-39比较运算符的使用 57
2.6.5 逻辑运算符 58
实例 2-40逻辑运算符的使用 58
2.6.6 位运算符 59
实例 2-41位运算符的使用 59
2.6.7 字符串运算符 60
实例 2-42字符串运算符的使用 60
2.6.8 数组运算符 60
实例 2-43数组运算符的应用 61
2.6.9 错误抑制运算符 61
实例 2-44错误抑制运算符的使用 61
2.6.10 类型运算符 62
实例 2-45类型运算符的应用 62
2.6.11 执行运算符 62
实例 2-46执行运算符的应用 62
2.6.12 三元运算符 62
实例 2-47判断运算符的应用 63
2.6.13 运算符的优先级 63
2.7 表达式 64
2.7.1 简单表达式 64
实例 2-48简单表达式应用 64
2.7.2 复杂表达式 64
实例 2-49复杂表达式 64
2.8 PHP 流程控制语句 65
2.8.1 条件控制语句 65
实例 2-50 if...else 语句的使用 65
实例 2-51 if...elseif...else 语句的使用 66
实例 2-52 switch 语句的使用(break语句比较) 67
2.8.2 PHP 循环语句 68
实例 2-53 while 循环的使用 68
实例 2-54 do...while 循环的使用 68
实例 2-55 for 循环的使用 69
实例 2-56 foreach 循环的使用 70
2.8.3跳出控制语句 70
实例 2-57 break 语句的使用 70
实例 2-58 continue 语句的使用 73
小结 73
习题 74
第 3 章PHP 函数 77
3.1 自定义函数 77
3.1.1 函数的语法 77
实例 3-1自定义函数的声明 78
3.1.2 函数的参数 78
实例 3-2函数使用参数 78
实例 3-3在函数参数中指定默认值 78
实例 3-4函数接受多个参数 79
3.1.3函数的返回值 79
实例 3-5函数的返回值 79
实例 3-6调用函数外部参数但不重新定义变量 79
实例 3-7调用函数外部参数后再重新定义变量 80
3.1.4自定义函数使用实例 80
实例 3-8使用函数声明输出表格但没有调用 80
实例 3-9使用函数声明输出表格并调用此函数 81
实例 3-10使用函数声明输出表格,在函数中添加参数并调用函数 81
实例 3-11使用函数声明输出表格,并用 return 语句返回该函数的执行结果 83
3.2 PHP 检测函数 84
3.2.1 function_exists( ) 函数 84
实例 3-12检测用户自定义函数 84
实例 3-13检测系统内置函数(检查系统是否开启 GD 库) 84
实例 3-14 function_exists( ) 直接返回原函数值 85
3.2.2 isset( ) 检测变量是否设置 85
实例 3-15 isset( ) 检测变量是否设置 85
3.2.3 empty( ) 检测一个变量是否为空 86
实例 3-16 empty( ) 检测一个变量是否为空 86
3.2.4 empty( ) 与 isset( ) 的比较 87
3.2.5 unset() 销毁变量 87
实例 3-17使用 unset( ) 销毁静态变量 87
实例 3-18在函数中用 unset( ) 传一个全局变量,局部变量被销毁 88
实例 3-19使用 $GLOBALS 数组形式实现unset( ) 销毁函数中的全局变量 89
3.2.6 defined( ) 检测常量是否被定义 89
实例 3-20 defined( ) 检测一个常量是否被定义 89
3.3 PHP 字符串处理函数 89
3.3.1 PHP 字符串处理简介 89
3.3.2 PHP 字符串输出函数 91
实例 3-21 echo( ) 输出字符串 91
实例 3-22 printf( ) 输出字符串 92
3.3.3 PHP 字符串去除函数 92
实例 3-23 trim( ) 函数的使用 92
3.3.4 implode 函数 93
实例 3-24连接符 ^ 的使用 93
3.3.5 PHP 字符串分割函数 94
实例 3-25 explode( ) 函数分割字符串 94
实例 3-26 str_split( ) 函数将字符串分割为数组 95
3.3.6 PHP 字符串获取函数 96
实例 3-27 substr( ) 函数获取字符串 96
实例 3-28 strstr( ) 函数查找字符串 97
实例 3-29 strrchr( ) 函数查找字符串 97
3.3.7 PHP 字符串替换函数 98
实例 3-30 substr_replace( ) 函数替换字符串 98
实例 3-31使用 str_replace( ) 函数替换字符串 98
3.3.8 PHP 字符串计算函数 99
实例 3-32使用 strlen( ) 函数计算字符串的长度 99
实例 3-33使用 strpos( ) 函数定位字符串第一次出现的位置 100
实例 3-34使用 strrpos( ) 函数定位字符串最后一次出现的位置 100
3.3.9 PHP 字符串 XHTML 格式化显示函数 100
实例 3-35使用 nl2br( ) 函数格式化字符串 100
实例 3-36使用 htmlspecialchars( ) 函数格式化字符串 101
3.3.10 PHP 字符串存储函数 101
实例 3-37使用 addslashes( ) 函数对特殊字符加上转义字符 102
实例 3-38对 get_magic_quotes_gpc( )进行检测 102
实例 3-39使用 stripslashes( ) 函数取消转义字符 102
小结 103
习题 103
第 4 章PHP 数组 108
4.1 数组概述 108
4.1.1数组的定义 108
4.1.2 数组的分类 108
4.2 数组的声明 109
4.2.1 直接赋值的方式声明数组 109
实例 4-1一维索引数组 109
实例 4-2关联数组 110
4.2.2 使用 array( ) 函数新建数组 110
实例 4-3使用 array( ) 创建数组 110
4.2.3 多维数组的声明 111
实例 4-4二维数组的声明 111
实例 4-5 array 语法声明二维数组 111
4.3 数组的遍历 112
4.3.1 使用 for 循环遍历数组 112
实例 4-6 for 循环遍历索引数组 112
4.3.2 forEach 循环遍历数组 112
实例 4-7 foreach 循环遍历数组 113
实例 4-8 foreach 解析数组 113
4.3.3 联合使用 list( )、each( ) 和 while 循环遍历数组 115
实例 4-9使用 list( )、each( ) 和 while循环遍历数组 115
4.3.4 使用数组的内部指针控制函数遍历数组 116
实例 4-10使用 key($array) 得到当前指针的键名和键值 116
实例 4-11使用 next($array) 将数组指针向下移动一位 116
实例 4-12使用 prev($array) 将数组指针向上移动一位 117
实例 4-13使用 reset($array) 将数组指针移动到数组开始位置 118
实例 4-14使用 end($array) 将数组指针移动到数组末尾 118
实例 4-15使用 current( ) 函数返回数组中当前指针所在位置的数组值 118
4.4数组统计函数 119
实例 4-16使用 count( ) 函数统计数组中元素的个数 119
实例 4-17使用 array_count_values( ) 函数统计数组中所有值出现的次数 120
实例 4-18使用 array_sum( ) 函数返回整数和 120
实例 4-19使用 array_sum( ) 函数返回浮点数和 120
实例 4-20使用 array_sum( ) 函数返回关联数组中值的和 120
实例 4-21使用 for 循环计算 1 到 100的和 120
实例 4-22使用 max( ) 函数返回最大值 121
实例 4-23使用 min( ) 函数返回最小值 121
4.5数组和变量之间的转换 122
实例 4-24使用 extract( ) 函数定义变量 122
实例 4-25使用 compact( ) 函数建立数组 122
4.6数组检索函数 122
实例 4-26使用 array_keys( ) 函数获取数组的键名 123
实例 4-27使用 array_values( ) 函数返回值并建立数字索引 123
实例 4-28使用 in_array( ) 函数检测某一个值是否存在 123
实例 4-29使用 array_search( ) 函数搜索某一个值 124
实例 4-30使用 array_key_exists( ) 函数检查给定的键名、索引 124
实例 4-31使用 array_unique( ) 函数删除重复元素 125
4.7组排序函数 125
实例 4-32使用 sort( ) 函数将数组元素升序排列并变为新数组 125
实例 4-33使用 asort( ) 函数排序并保持原有键 / 值对的对应关系 125
实例 4-34使用 ksort( ) 和 krsort( ) 函数进行升序 / 降序排序 126
实例 4-35使用 natsort( ) 和 natcasesort( )函数自然排序法排序 126
实例 4-36使用 shuffle( ) 函数进行随机排序 126
实例 4-37使用 array_reverse( ) 函数返回新数组 127
4.8数组与数据结构 127
实例 4-38使用 array_push( ) 函数向数组末尾添加元素 127
实例 4-39使用 array_pop( ) 函数弹出数组最后一个元素 127
实例 4-40使用 array_shift( ) 函数删除数组第一个元素 128
实例 4-41使用 array_unshift( ) 函数在数组开始插入元素 128
4.9数组集合类函数 128
实例 4-42使用 array_merge( ) 函数合并数组 129
实例 4-43使用 array_diff( ) 函数计算数组的差集 129
实例 4-44使用 array_diff_assoc( ) 函数检查计算数组的差集 129
实例 4-45使用 array_diff_key( ) 函数比较键名计算数组差集 130
实例 4-46使用 array_intersect( ) 函数获取数组的交集 130
实例 4-47使用 array_intersect_assoc( )函数比较两个(或多个)数组的键名和键值 130
实例 4-48使用 array_intersect_key( )函数比较两个(或多个)数组的键名 131
小结 131
习题 132
第 5 章PHP 面向对象编程 133
5.1 PHP 类与对象 133
5.1.1类 134
5.1.2属性 134
5.1.3 方法 134
5.1.4 类的应用 134
实例 5-1类的定义及应用 135
5.2 PHP 类的继承 135
实例 5-2使用 extends 关键字来定义类的继承 136
5.3 PHP 构造方法 __construct( ) 136
实例 5-3 PHP 构造方法 __construct( )的使用 137
5.4 PHP 析构方法 __destruct( ) 137
5.5 PHP final 关键字 138
5.6 PHP 类的接口 138
5.6.1 PHP 接口 . 138
实例 5-4使用关键字 interface 定义接口,并使用关键字 implements 实现接口中的方法 139
5.6.2 实现多个接口 140
5.6.3 抽象类和接口的区别 140
5.7 PHP 类的访问控制与封装 140
5.7.1 访问控制 140
5.7.2 封装 141
实例 5-5使用 private 关键字对属性和方法进行封装 141
5.8 PHP 自动加载类 141
实例 5-6使用 _ _autoload( ) 方法自动加载类 142
5.9 范围解析操作符(::) 142
5.9.1 :: 访问静态成员、方法实例 143
实例 5-7使用 :: 访问静态成员、方法 143
5.9.2 :: 访问父类覆盖成员和方法的实例 143
实例 5-8使用 :: 访问父类覆盖成员和方法 143
5.10 PHP 类的静态成员属性与静态方法 144
5.10.1 静态(static) 144
实例 5-9使用 static 声明类成员或方法 144
5.10.2 静态属性方法 145
5.11 PHP 常量(const) 145
实例 5-10使用 const 关键字定义常量 145
5.12 PHP 特殊方法 146
5.12.1 __set( ) 方法 146
5.12.2 __get( ) 方法 146
实例 5-11使用 __get( ) 方法获取私有属性值 147
5.12.3 __isset( ) 方法 147
5.12.4 __unset( ) 方法 147
5.13 PHP 重载 148
实例 5-12 PHP 的重载 148
5.14 PHP 重载方法 149
5.15 PHP 抽象方法与抽象类 150
5.15.1 抽象方法 150
5.15.2 抽象类 150
实例 5-13使用 abstract 关键字定义抽象类 150
5.16 PHP 对象克隆 151
5.16.1 对象克隆关键字 151
实例 5-14使用关键字 clone 克隆对象 151
5.16.2 __clone( ) 方法 151
实例 5-15使用 __clone( ) 方法重写对象原本的属性和方法 152
5.17 PHP 对象的存储与传输 152
5.17.1 序列化对象 152
实例 5-16使用 serialize( ) 函数序列化一个对象 153
实例 5-17使用 unserialize( ) 函数反序列化一个被序列化的对象 153
5.17.2 对象注册为 session 变量 154
实例 5-18使用 session 来保存对象,并读取对象 154
小结 155
习题 155
第 6 章PHP 与 Web 页面交互 156
6.1 PHP 超级全局变量 156
6.1.1 PHP $GLOBALS 156
实例 6-1 $GLOBALS 的使用 157
6.1.2 PHP $_SERVER 157
实例 6-2 $_SERVER 的使用 157
6.1.3 PHP $_REQUEST 158
实例 6-3 $_REQUEST 的使用 159
6.1.4 PHP $_POST 159
实例 6-4 $_POST 的使用 159
6.1.5 PHP $_GET 160
实例 6-5 $_GET 的使用 160
6.2 PHP 表单和用户输入 161
6.2.1 PHP 表单处理 161
实例 6-6 PHP 表单前端页面 161
实例 6-7 PHP 表单获取数据页面 161
6.2.2 PHP 获取下拉菜单的数据 161
实例 6-8实现 PHP 下拉菜单单选 162
实例 6-9实现 PHP 下拉菜单多选 162
实例 6-10实现 PHP 单选按钮 163
实例 6-11实现 PHP 复选框 164
6.2.3 表单验证 164
实例 6-12 PHP 表单验证 165
6.2.4 $_SERVER["PHP_SELF"] 变量 169
6.2.5 htmlspecialchars( ) 方法 169
6.2.6 PHP 表单注意事项 169
6.2.7 避免 $_SERVER["PHP_SELF"] 被利用 170
6.2.8 使用 PHP 验证表单数据 170
实例 6-13通过 test_input( ) 函数检测 $_POST 中的所有变量 170
6.2.9 PHP 表单必需字段验证 172
实例 6-14 PHP 表单必填字段判断 173
6.2.10 PHP 表单验证邮件和 URL 175
实例 6-15 PHP 验证姓名 name、邮件地址 E-mail 和网址 URL 176
6.2.11 PHP 完整表单实例 178
实例 6-16 PHP 完整的表单验证 179
6.2.12 PHP $_GET 变量 181
6.2.13 PHP $_POST 变量 182
6.2.14 PHP $_REQUEST 变量 183
小结 183
习题 184
第 7 章PHP 的 Cookie 和 Session技术 185
7.1 Cookie 技术 185
7.1.1 PHP 中 Cookie 的功能和用途 185
7.1.2 PHP 中如何创建 Cookie 186
7.1.3 PHP 中如何读取 Cookie 187
实例 7-1使用 $_COOKIE[] 读取浏览器端的 Cookie 值 188
7.2 Session 技术 188
7.2.1 Session 简介 188
7.2.2 PHP 中如何启动 Session 会话 190
7.2.3 PHP 中如何注册和读取 Session 会话 190
实例 7-2 Session 注册会话 191
实例 7-3读取 Session 会话 191
实例 7-4 Session 使用完整示例 192
7.2.4 PHP 中如何删除和销毁 Session 193
7.3 用户登录案例 194
实例 7-5使用 cookie 和 session 实现用户登录 194
小结 199
习题 199
第 8 章PHP 正则表达式 203
8.1 正则表达式简介 203
8.1.1 最简单的匹配 203
8.1.2 元字符 204
8.2 PHP 正则表达式语法 205
8.2.1 重复规则 205
8.2.2 分支 205
8.2.3 分组 205
8.2.4 贪婪与懒惰 206
8.2.5 模式修正符 206
8.3 正则表达式匹配 207
8.3.1 正则表达式在 PHP 中的应用 207
8.3.2 定界符 207
8.3.3 preg_match( ) 函数 207
实例 8-1 preg_match( ) 函数 207
实例 8-2从一个 URL 中取得主机域名 208
8.3.4 preg_match_all( ) 函数 208
实例 8-3使用 preg_match_all( ) 函数设置文字 209
8.3.5 正则匹配中文汉字 209
实例 8-4正则匹配中文汉字 209
8.4 PHP 正则表达式替换 209
8.4.1 正则替换简介 209
8.4.2 正则替换补充说明 210
实例 8-5使用 preg_replace( ) 函数添加“-”分割符号 210
实例 8-6使用数组 210
实例 8-7使用逆向引用 211
8.5 PHP 正则表达式分割 211
8.5.1 preg_split( ) 函数 211
实例 8-8使用 preg_split( ) 函数分割
字符串为数组 212
实例 8-9使用 preg_split( ) 函数分割字符串 212
实例 8-10使用 preg_split( ) 函数分割字符串返回字符串和偏移量 212
8.5.2 split( ) 函数 213
实例 8-11使用 split( ) 函数分割数组 213
8.6 PHP 常用正则表达式整理 214
8.6.1 表单验证匹配 214
8.6.2 字符匹配 214
8.6.3 匹配数字 215
8.6.4 其他 215
小结 215
习题 215
第 9 章MySQL 数据库 219
9.1 MySQL 的基本使用 219
9.1.1 数据库基础知识 219
9.1.2 MySQL 简介 219
9.1.3 MySQL 的基本操作 220
实例 9-1 MySQL 的基本操作 220
9.2 MySQL 管理工具 phpMyAdmin 226
9.2.1 phpMyAdmin 的安装与配置 227
9.2.2 phpMyAdmin 的操作 228
实例 9-2 phpMyAdmin 删除数据库 228
实例 9-3 phpmyadmin 创建一个数据库 230
实例 9-4 phpmyadmin 创建数据表 231
实例 9-5 phpmyadmin 向数据表插入数据 232
实例 9-6 phpmyadmin 查询数据表中的数据 233
小结 233
习题 233
第 10 章PHP 操作数据库 234
10.1 PHP 操作 MySQL 数据库 234
10.1.1 连接 MySQL 数据库 234
实例 10-1在 PHP 脚本中进行 MySQL数据库服务器的连接 235
实例 10-2在 PHP 脚本中安全地连接 MySQL 数据库服务器 236
10.1.2断开与 MySQL 的连接 236
实例 10-3在 PHP 脚本中关闭一个由mysqli_connect( ) 函数所建立的数据库连接 236
10.1.3选择和使用 MySQL 数据库 237
实例 10-4在 PHP 脚本中选择 MySQL数据库服务器上的数据库 237
10.1.4执行 MySQL 指令 238
实例 10-5在 PHP 脚本中执行 SQL 语句 238
10.1.5分析结果集 239
实例 10-6在 PHP 脚本中获取结果集中的记录数 239
实例 10-7在 PHP 脚本中获取第 x 行第 x 列记录 240
实例 10-8用 mysqli_result 获取结果集中的所有数据 241
实例 10-9采用 mysql_fetch_row() 函数获取结果集中的所有数据 242
实例 10-10在 PHP 中使用 array mysqli_ fetch_array() 函数获取结果集中的数据 244
实例 10-11分页显示结果集中的数据 244
10.2 管理 MySQL 数据库中的数据 246
10.2.1 添加数据 246
实例 10-12用户输入数据的 HTML页面代码 246
实例 10-13服务器在接收到用户所提交的数据后,使用 mysql_qeury()函数将用户所提交的数据添加至数据库 247
10.2.2更新数据 248
实例 10-14在页面中浏览数据 248
实例 10-15根据 ID 号调用其信息并显示在 HTML 表单中 249
实例 10-16根据用户提交的表单中的信息进行修改 250
10.2.3删除数据 252
实例 10-17用户在选择要删除的资料时弹出相应的窗口 252
实例 10-18采用 mysql_query() 函数执行删除语句 253
小结 254
习题 254
第 11 章PHP 用户注册与登录 255
11.1 需求分析 255
11.2 数据表设计 256
11.3 页面组成 256
11.4 PHP 用户注册 257
11.4.1 注册页面 257
11.4.2数据库连接 259
11.4.3注册后台处理 259
11.5 PHP 用户登录与退出 260
11.5.1登录页面 260
11.5.2登录处理 261
11.5.3退出处理 262
11.6用户中心 263
小结 264
习题 265
第 12 章PHP 留言板制作 267
12.1 PHP 留言板制作简介 267
12.2 PHP 留言板功能需求分析 268
12.3 PHP 留言板页面构成 268
12.4 PHP 留言板数据库表设计 270
12.5 PHP 留言板留言信息读取展示 270
12.6 PHP 留言板留言表单及留言处理 273
12.6.1 留言表单 273
12.6.2 JavaScript 检测代码 274
12.6.3 留言表单信息处理 274
12.7 PHP 留言板后台管理登录 275
12.7.1 登录表单 275
12.7.2 JavaScript 检测代码 276
12.7.3 登录密码检测 276
12.8 PHP 留言板系统后台管理 278
12.8.1 后台管理功能分析 278
12.8.2 后台管理主页面 admin.php 278
12.9 PHP 留言板后台管理回复及删除留言处理 279
12.9.1 留言回复 279
12.9.2 留言删除 280
小结 281
习题 281
参考文献 282
1.1 Web 程序工作原理 1
1.2 PHP 简介 5
1.2.1什么是 PHP 5
1.2.2 PHP 可以做什么 5
1.2.3 PHP 的特点 5
1.2.4 PHP 的优点 6
1.2.5 PHP 常用编译工具 6
1.3 PHP 开发环境的搭建 7
1.3.1 分别安装 Apache+PHP+MySQL 搭建PHP 开发环境 7
实例 1-1 Apache 的安装与测试 7
实例 1-2 PHP 的安装与测试 9
实例 1-3 MySQL 的安装 14
1.3.2 PHP 集成开发环境的搭建 20
实例 1-4 PHP 集成开发环境的安装与测试 20
小结 26
习题 26
第 2 章基本语法 27
2.1 PHP 代码标记 27
2.2 PHP 文本注释 28
2.3 PHP 输出函数 29
2.3.1 echo( ) 函数 29
2.3.2 print( ) 函数 29
2.3.3 printf( ) 函数 29
2.3.4 sprintf( ) 函数 30
2.4 PHP 变量 31
2.4.1 变量的命名规则 31
2.4.2 变量的赋值 31
实例 2-1应用传值赋值 32
实例 2-2应用引用赋值 32
2.4.3变量的作用域 33
实例 2-3局部变量的使用 33
实例 2-4应用全局变量(在函数内部引用函数外部的参数) 33
实例 2-5应用全局变量(在函数外部引用函数内部的参数) 34
实例 2-6应用静态变量 34
实例 2-7可变变量的使用 35
2.4.4 变量的数据类型 36
实例 2-8整型数据的用法 36
实例 2-9浮点型数据的用法 36
实例 2-10布尔型数据的用法 37
实例 2-11双引号、单引号、定界符的使用 37
实例 2-12{}和 . 在字符串中的使用 38
实例 2-13一个简单 PHP 数组的应用实例 39
实例 2-14类和对象的应用实例 39
实例 2-15应用资源数据类型的实例 40
实例 2-16 NULL 数据类型的用法 40
2.4.5变量类型的转换 40
实例 2-17自动类型转换 41
实例 2-18其他数据类型转换为整型 42
实例 2-19浮点型数据向整型数据转换 43
实例 2-20浮点型数据除法运算 43
实例 2-21将其他数据类型转换为浮点型 44
实例 2-22将其他数据类型转换为布尔型 45
实例 2-23将其他数据类型转换为字符串 46
实例 2-24将其他数据类型转换为数组 47
实例 2-25将其他数据类型转换为对象 47
2.4.6 变量的常用函数 48
实例 2-26使用 settype( ) 函数指定变量类型 48
实例2-27使用intval( )函数、floatval( )函数、strval( ) 函数实现数据转换 49
实例 2-28 isset( ) 函数检查变量是否存在 49
实例 2-29 empty( ) 函数检查变量值是否为空 50
实例 2-30使用判断变量类型函数 51
实例 2-31使用 gettype( ) 函数获取变量类型 51
实例 2-32使用 var_dump( ) 函数打印变量信息 52
实例 2-33使用 var_export( ) 函数输出或返回字符串 52
实例 2-34使用 unset( ) 函数销毁变量 53
2.5 PHP 常量 53
2.5.1自定义常量 53
实例 2-35使用 define( ) 函数定义常量 53
2.5.2预定义常量 54
2.6运算符 54
2.6.1算术运算符 54
实例 2-36算术运算符的使用 55
2.6.2 递增/递减运算符 55
实例 2-37递增 / 递减运算符的使用 55
2.6.3 赋值运算符 56
实例 2-38赋值运算符的使用 56
2.6.4 比较运算符 57
实例 2-39比较运算符的使用 57
2.6.5 逻辑运算符 58
实例 2-40逻辑运算符的使用 58
2.6.6 位运算符 59
实例 2-41位运算符的使用 59
2.6.7 字符串运算符 60
实例 2-42字符串运算符的使用 60
2.6.8 数组运算符 60
实例 2-43数组运算符的应用 61
2.6.9 错误抑制运算符 61
实例 2-44错误抑制运算符的使用 61
2.6.10 类型运算符 62
实例 2-45类型运算符的应用 62
2.6.11 执行运算符 62
实例 2-46执行运算符的应用 62
2.6.12 三元运算符 62
实例 2-47判断运算符的应用 63
2.6.13 运算符的优先级 63
2.7 表达式 64
2.7.1 简单表达式 64
实例 2-48简单表达式应用 64
2.7.2 复杂表达式 64
实例 2-49复杂表达式 64
2.8 PHP 流程控制语句 65
2.8.1 条件控制语句 65
实例 2-50 if...else 语句的使用 65
实例 2-51 if...elseif...else 语句的使用 66
实例 2-52 switch 语句的使用(break语句比较) 67
2.8.2 PHP 循环语句 68
实例 2-53 while 循环的使用 68
实例 2-54 do...while 循环的使用 68
实例 2-55 for 循环的使用 69
实例 2-56 foreach 循环的使用 70
2.8.3跳出控制语句 70
实例 2-57 break 语句的使用 70
实例 2-58 continue 语句的使用 73
小结 73
习题 74
第 3 章PHP 函数 77
3.1 自定义函数 77
3.1.1 函数的语法 77
实例 3-1自定义函数的声明 78
3.1.2 函数的参数 78
实例 3-2函数使用参数 78
实例 3-3在函数参数中指定默认值 78
实例 3-4函数接受多个参数 79
3.1.3函数的返回值 79
实例 3-5函数的返回值 79
实例 3-6调用函数外部参数但不重新定义变量 79
实例 3-7调用函数外部参数后再重新定义变量 80
3.1.4自定义函数使用实例 80
实例 3-8使用函数声明输出表格但没有调用 80
实例 3-9使用函数声明输出表格并调用此函数 81
实例 3-10使用函数声明输出表格,在函数中添加参数并调用函数 81
实例 3-11使用函数声明输出表格,并用 return 语句返回该函数的执行结果 83
3.2 PHP 检测函数 84
3.2.1 function_exists( ) 函数 84
实例 3-12检测用户自定义函数 84
实例 3-13检测系统内置函数(检查系统是否开启 GD 库) 84
实例 3-14 function_exists( ) 直接返回原函数值 85
3.2.2 isset( ) 检测变量是否设置 85
实例 3-15 isset( ) 检测变量是否设置 85
3.2.3 empty( ) 检测一个变量是否为空 86
实例 3-16 empty( ) 检测一个变量是否为空 86
3.2.4 empty( ) 与 isset( ) 的比较 87
3.2.5 unset() 销毁变量 87
实例 3-17使用 unset( ) 销毁静态变量 87
实例 3-18在函数中用 unset( ) 传一个全局变量,局部变量被销毁 88
实例 3-19使用 $GLOBALS 数组形式实现unset( ) 销毁函数中的全局变量 89
3.2.6 defined( ) 检测常量是否被定义 89
实例 3-20 defined( ) 检测一个常量是否被定义 89
3.3 PHP 字符串处理函数 89
3.3.1 PHP 字符串处理简介 89
3.3.2 PHP 字符串输出函数 91
实例 3-21 echo( ) 输出字符串 91
实例 3-22 printf( ) 输出字符串 92
3.3.3 PHP 字符串去除函数 92
实例 3-23 trim( ) 函数的使用 92
3.3.4 implode 函数 93
实例 3-24连接符 ^ 的使用 93
3.3.5 PHP 字符串分割函数 94
实例 3-25 explode( ) 函数分割字符串 94
实例 3-26 str_split( ) 函数将字符串分割为数组 95
3.3.6 PHP 字符串获取函数 96
实例 3-27 substr( ) 函数获取字符串 96
实例 3-28 strstr( ) 函数查找字符串 97
实例 3-29 strrchr( ) 函数查找字符串 97
3.3.7 PHP 字符串替换函数 98
实例 3-30 substr_replace( ) 函数替换字符串 98
实例 3-31使用 str_replace( ) 函数替换字符串 98
3.3.8 PHP 字符串计算函数 99
实例 3-32使用 strlen( ) 函数计算字符串的长度 99
实例 3-33使用 strpos( ) 函数定位字符串第一次出现的位置 100
实例 3-34使用 strrpos( ) 函数定位字符串最后一次出现的位置 100
3.3.9 PHP 字符串 XHTML 格式化显示函数 100
实例 3-35使用 nl2br( ) 函数格式化字符串 100
实例 3-36使用 htmlspecialchars( ) 函数格式化字符串 101
3.3.10 PHP 字符串存储函数 101
实例 3-37使用 addslashes( ) 函数对特殊字符加上转义字符 102
实例 3-38对 get_magic_quotes_gpc( )进行检测 102
实例 3-39使用 stripslashes( ) 函数取消转义字符 102
小结 103
习题 103
第 4 章PHP 数组 108
4.1 数组概述 108
4.1.1数组的定义 108
4.1.2 数组的分类 108
4.2 数组的声明 109
4.2.1 直接赋值的方式声明数组 109
实例 4-1一维索引数组 109
实例 4-2关联数组 110
4.2.2 使用 array( ) 函数新建数组 110
实例 4-3使用 array( ) 创建数组 110
4.2.3 多维数组的声明 111
实例 4-4二维数组的声明 111
实例 4-5 array 语法声明二维数组 111
4.3 数组的遍历 112
4.3.1 使用 for 循环遍历数组 112
实例 4-6 for 循环遍历索引数组 112
4.3.2 forEach 循环遍历数组 112
实例 4-7 foreach 循环遍历数组 113
实例 4-8 foreach 解析数组 113
4.3.3 联合使用 list( )、each( ) 和 while 循环遍历数组 115
实例 4-9使用 list( )、each( ) 和 while循环遍历数组 115
4.3.4 使用数组的内部指针控制函数遍历数组 116
实例 4-10使用 key($array) 得到当前指针的键名和键值 116
实例 4-11使用 next($array) 将数组指针向下移动一位 116
实例 4-12使用 prev($array) 将数组指针向上移动一位 117
实例 4-13使用 reset($array) 将数组指针移动到数组开始位置 118
实例 4-14使用 end($array) 将数组指针移动到数组末尾 118
实例 4-15使用 current( ) 函数返回数组中当前指针所在位置的数组值 118
4.4数组统计函数 119
实例 4-16使用 count( ) 函数统计数组中元素的个数 119
实例 4-17使用 array_count_values( ) 函数统计数组中所有值出现的次数 120
实例 4-18使用 array_sum( ) 函数返回整数和 120
实例 4-19使用 array_sum( ) 函数返回浮点数和 120
实例 4-20使用 array_sum( ) 函数返回关联数组中值的和 120
实例 4-21使用 for 循环计算 1 到 100的和 120
实例 4-22使用 max( ) 函数返回最大值 121
实例 4-23使用 min( ) 函数返回最小值 121
4.5数组和变量之间的转换 122
实例 4-24使用 extract( ) 函数定义变量 122
实例 4-25使用 compact( ) 函数建立数组 122
4.6数组检索函数 122
实例 4-26使用 array_keys( ) 函数获取数组的键名 123
实例 4-27使用 array_values( ) 函数返回值并建立数字索引 123
实例 4-28使用 in_array( ) 函数检测某一个值是否存在 123
实例 4-29使用 array_search( ) 函数搜索某一个值 124
实例 4-30使用 array_key_exists( ) 函数检查给定的键名、索引 124
实例 4-31使用 array_unique( ) 函数删除重复元素 125
4.7组排序函数 125
实例 4-32使用 sort( ) 函数将数组元素升序排列并变为新数组 125
实例 4-33使用 asort( ) 函数排序并保持原有键 / 值对的对应关系 125
实例 4-34使用 ksort( ) 和 krsort( ) 函数进行升序 / 降序排序 126
实例 4-35使用 natsort( ) 和 natcasesort( )函数自然排序法排序 126
实例 4-36使用 shuffle( ) 函数进行随机排序 126
实例 4-37使用 array_reverse( ) 函数返回新数组 127
4.8数组与数据结构 127
实例 4-38使用 array_push( ) 函数向数组末尾添加元素 127
实例 4-39使用 array_pop( ) 函数弹出数组最后一个元素 127
实例 4-40使用 array_shift( ) 函数删除数组第一个元素 128
实例 4-41使用 array_unshift( ) 函数在数组开始插入元素 128
4.9数组集合类函数 128
实例 4-42使用 array_merge( ) 函数合并数组 129
实例 4-43使用 array_diff( ) 函数计算数组的差集 129
实例 4-44使用 array_diff_assoc( ) 函数检查计算数组的差集 129
实例 4-45使用 array_diff_key( ) 函数比较键名计算数组差集 130
实例 4-46使用 array_intersect( ) 函数获取数组的交集 130
实例 4-47使用 array_intersect_assoc( )函数比较两个(或多个)数组的键名和键值 130
实例 4-48使用 array_intersect_key( )函数比较两个(或多个)数组的键名 131
小结 131
习题 132
第 5 章PHP 面向对象编程 133
5.1 PHP 类与对象 133
5.1.1类 134
5.1.2属性 134
5.1.3 方法 134
5.1.4 类的应用 134
实例 5-1类的定义及应用 135
5.2 PHP 类的继承 135
实例 5-2使用 extends 关键字来定义类的继承 136
5.3 PHP 构造方法 __construct( ) 136
实例 5-3 PHP 构造方法 __construct( )的使用 137
5.4 PHP 析构方法 __destruct( ) 137
5.5 PHP final 关键字 138
5.6 PHP 类的接口 138
5.6.1 PHP 接口 . 138
实例 5-4使用关键字 interface 定义接口,并使用关键字 implements 实现接口中的方法 139
5.6.2 实现多个接口 140
5.6.3 抽象类和接口的区别 140
5.7 PHP 类的访问控制与封装 140
5.7.1 访问控制 140
5.7.2 封装 141
实例 5-5使用 private 关键字对属性和方法进行封装 141
5.8 PHP 自动加载类 141
实例 5-6使用 _ _autoload( ) 方法自动加载类 142
5.9 范围解析操作符(::) 142
5.9.1 :: 访问静态成员、方法实例 143
实例 5-7使用 :: 访问静态成员、方法 143
5.9.2 :: 访问父类覆盖成员和方法的实例 143
实例 5-8使用 :: 访问父类覆盖成员和方法 143
5.10 PHP 类的静态成员属性与静态方法 144
5.10.1 静态(static) 144
实例 5-9使用 static 声明类成员或方法 144
5.10.2 静态属性方法 145
5.11 PHP 常量(const) 145
实例 5-10使用 const 关键字定义常量 145
5.12 PHP 特殊方法 146
5.12.1 __set( ) 方法 146
5.12.2 __get( ) 方法 146
实例 5-11使用 __get( ) 方法获取私有属性值 147
5.12.3 __isset( ) 方法 147
5.12.4 __unset( ) 方法 147
5.13 PHP 重载 148
实例 5-12 PHP 的重载 148
5.14 PHP 重载方法 149
5.15 PHP 抽象方法与抽象类 150
5.15.1 抽象方法 150
5.15.2 抽象类 150
实例 5-13使用 abstract 关键字定义抽象类 150
5.16 PHP 对象克隆 151
5.16.1 对象克隆关键字 151
实例 5-14使用关键字 clone 克隆对象 151
5.16.2 __clone( ) 方法 151
实例 5-15使用 __clone( ) 方法重写对象原本的属性和方法 152
5.17 PHP 对象的存储与传输 152
5.17.1 序列化对象 152
实例 5-16使用 serialize( ) 函数序列化一个对象 153
实例 5-17使用 unserialize( ) 函数反序列化一个被序列化的对象 153
5.17.2 对象注册为 session 变量 154
实例 5-18使用 session 来保存对象,并读取对象 154
小结 155
习题 155
第 6 章PHP 与 Web 页面交互 156
6.1 PHP 超级全局变量 156
6.1.1 PHP $GLOBALS 156
实例 6-1 $GLOBALS 的使用 157
6.1.2 PHP $_SERVER 157
实例 6-2 $_SERVER 的使用 157
6.1.3 PHP $_REQUEST 158
实例 6-3 $_REQUEST 的使用 159
6.1.4 PHP $_POST 159
实例 6-4 $_POST 的使用 159
6.1.5 PHP $_GET 160
实例 6-5 $_GET 的使用 160
6.2 PHP 表单和用户输入 161
6.2.1 PHP 表单处理 161
实例 6-6 PHP 表单前端页面 161
实例 6-7 PHP 表单获取数据页面 161
6.2.2 PHP 获取下拉菜单的数据 161
实例 6-8实现 PHP 下拉菜单单选 162
实例 6-9实现 PHP 下拉菜单多选 162
实例 6-10实现 PHP 单选按钮 163
实例 6-11实现 PHP 复选框 164
6.2.3 表单验证 164
实例 6-12 PHP 表单验证 165
6.2.4 $_SERVER["PHP_SELF"] 变量 169
6.2.5 htmlspecialchars( ) 方法 169
6.2.6 PHP 表单注意事项 169
6.2.7 避免 $_SERVER["PHP_SELF"] 被利用 170
6.2.8 使用 PHP 验证表单数据 170
实例 6-13通过 test_input( ) 函数检测 $_POST 中的所有变量 170
6.2.9 PHP 表单必需字段验证 172
实例 6-14 PHP 表单必填字段判断 173
6.2.10 PHP 表单验证邮件和 URL 175
实例 6-15 PHP 验证姓名 name、邮件地址 E-mail 和网址 URL 176
6.2.11 PHP 完整表单实例 178
实例 6-16 PHP 完整的表单验证 179
6.2.12 PHP $_GET 变量 181
6.2.13 PHP $_POST 变量 182
6.2.14 PHP $_REQUEST 变量 183
小结 183
习题 184
第 7 章PHP 的 Cookie 和 Session技术 185
7.1 Cookie 技术 185
7.1.1 PHP 中 Cookie 的功能和用途 185
7.1.2 PHP 中如何创建 Cookie 186
7.1.3 PHP 中如何读取 Cookie 187
实例 7-1使用 $_COOKIE[] 读取浏览器端的 Cookie 值 188
7.2 Session 技术 188
7.2.1 Session 简介 188
7.2.2 PHP 中如何启动 Session 会话 190
7.2.3 PHP 中如何注册和读取 Session 会话 190
实例 7-2 Session 注册会话 191
实例 7-3读取 Session 会话 191
实例 7-4 Session 使用完整示例 192
7.2.4 PHP 中如何删除和销毁 Session 193
7.3 用户登录案例 194
实例 7-5使用 cookie 和 session 实现用户登录 194
小结 199
习题 199
第 8 章PHP 正则表达式 203
8.1 正则表达式简介 203
8.1.1 最简单的匹配 203
8.1.2 元字符 204
8.2 PHP 正则表达式语法 205
8.2.1 重复规则 205
8.2.2 分支 205
8.2.3 分组 205
8.2.4 贪婪与懒惰 206
8.2.5 模式修正符 206
8.3 正则表达式匹配 207
8.3.1 正则表达式在 PHP 中的应用 207
8.3.2 定界符 207
8.3.3 preg_match( ) 函数 207
实例 8-1 preg_match( ) 函数 207
实例 8-2从一个 URL 中取得主机域名 208
8.3.4 preg_match_all( ) 函数 208
实例 8-3使用 preg_match_all( ) 函数设置文字 209
8.3.5 正则匹配中文汉字 209
实例 8-4正则匹配中文汉字 209
8.4 PHP 正则表达式替换 209
8.4.1 正则替换简介 209
8.4.2 正则替换补充说明 210
实例 8-5使用 preg_replace( ) 函数添加“-”分割符号 210
实例 8-6使用数组 210
实例 8-7使用逆向引用 211
8.5 PHP 正则表达式分割 211
8.5.1 preg_split( ) 函数 211
实例 8-8使用 preg_split( ) 函数分割
字符串为数组 212
实例 8-9使用 preg_split( ) 函数分割字符串 212
实例 8-10使用 preg_split( ) 函数分割字符串返回字符串和偏移量 212
8.5.2 split( ) 函数 213
实例 8-11使用 split( ) 函数分割数组 213
8.6 PHP 常用正则表达式整理 214
8.6.1 表单验证匹配 214
8.6.2 字符匹配 214
8.6.3 匹配数字 215
8.6.4 其他 215
小结 215
习题 215
第 9 章MySQL 数据库 219
9.1 MySQL 的基本使用 219
9.1.1 数据库基础知识 219
9.1.2 MySQL 简介 219
9.1.3 MySQL 的基本操作 220
实例 9-1 MySQL 的基本操作 220
9.2 MySQL 管理工具 phpMyAdmin 226
9.2.1 phpMyAdmin 的安装与配置 227
9.2.2 phpMyAdmin 的操作 228
实例 9-2 phpMyAdmin 删除数据库 228
实例 9-3 phpmyadmin 创建一个数据库 230
实例 9-4 phpmyadmin 创建数据表 231
实例 9-5 phpmyadmin 向数据表插入数据 232
实例 9-6 phpmyadmin 查询数据表中的数据 233
小结 233
习题 233
第 10 章PHP 操作数据库 234
10.1 PHP 操作 MySQL 数据库 234
10.1.1 连接 MySQL 数据库 234
实例 10-1在 PHP 脚本中进行 MySQL数据库服务器的连接 235
实例 10-2在 PHP 脚本中安全地连接 MySQL 数据库服务器 236
10.1.2断开与 MySQL 的连接 236
实例 10-3在 PHP 脚本中关闭一个由mysqli_connect( ) 函数所建立的数据库连接 236
10.1.3选择和使用 MySQL 数据库 237
实例 10-4在 PHP 脚本中选择 MySQL数据库服务器上的数据库 237
10.1.4执行 MySQL 指令 238
实例 10-5在 PHP 脚本中执行 SQL 语句 238
10.1.5分析结果集 239
实例 10-6在 PHP 脚本中获取结果集中的记录数 239
实例 10-7在 PHP 脚本中获取第 x 行第 x 列记录 240
实例 10-8用 mysqli_result 获取结果集中的所有数据 241
实例 10-9采用 mysql_fetch_row() 函数获取结果集中的所有数据 242
实例 10-10在 PHP 中使用 array mysqli_ fetch_array() 函数获取结果集中的数据 244
实例 10-11分页显示结果集中的数据 244
10.2 管理 MySQL 数据库中的数据 246
10.2.1 添加数据 246
实例 10-12用户输入数据的 HTML页面代码 246
实例 10-13服务器在接收到用户所提交的数据后,使用 mysql_qeury()函数将用户所提交的数据添加至数据库 247
10.2.2更新数据 248
实例 10-14在页面中浏览数据 248
实例 10-15根据 ID 号调用其信息并显示在 HTML 表单中 249
实例 10-16根据用户提交的表单中的信息进行修改 250
10.2.3删除数据 252
实例 10-17用户在选择要删除的资料时弹出相应的窗口 252
实例 10-18采用 mysql_query() 函数执行删除语句 253
小结 254
习题 254
第 11 章PHP 用户注册与登录 255
11.1 需求分析 255
11.2 数据表设计 256
11.3 页面组成 256
11.4 PHP 用户注册 257
11.4.1 注册页面 257
11.4.2数据库连接 259
11.4.3注册后台处理 259
11.5 PHP 用户登录与退出 260
11.5.1登录页面 260
11.5.2登录处理 261
11.5.3退出处理 262
11.6用户中心 263
小结 264
习题 265
第 12 章PHP 留言板制作 267
12.1 PHP 留言板制作简介 267
12.2 PHP 留言板功能需求分析 268
12.3 PHP 留言板页面构成 268
12.4 PHP 留言板数据库表设计 270
12.5 PHP 留言板留言信息读取展示 270
12.6 PHP 留言板留言表单及留言处理 273
12.6.1 留言表单 273
12.6.2 JavaScript 检测代码 274
12.6.3 留言表单信息处理 274
12.7 PHP 留言板后台管理登录 275
12.7.1 登录表单 275
12.7.2 JavaScript 检测代码 276
12.7.3 登录密码检测 276
12.8 PHP 留言板系统后台管理 278
12.8.1 后台管理功能分析 278
12.8.2 后台管理主页面 admin.php 278
12.9 PHP 留言板后台管理回复及删除留言处理 279
12.9.1 留言回复 279
12.9.2 留言删除 280
小结 281
习题 281
参考文献 282