《学通PHP的24堂课》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:潘凯华,刘欣,杨明等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2011
  • ISBN:9787302255420
  • 页数:722 页
图书介绍:本书从初中级用户的角度,科学合理的设计,通过24堂课全面讲述了PHP程序开发必备知识和技能,突出学、练、用结合。

第1部分 基础篇 3

第1堂课 PHP概述 3

1.1怎样学好PHP 4

1.1.1什么是PHP 4

1.1.2 PHP的优势 4

1.1.3如何学好编程 6

1.1.4下载PHP及相关软件 7

1.1.5代码编辑工具 8

1.1.6下载PHP用户手册 9

1.2环境的搭建 9

1.2.1 AppServ Windows版PHP集成化安装包 9

1.2.2 XAMPP——Linux版PHP集成化安装包 11

1.3 PHP开发环境的关键配置信息 13

1.3.1 Apache服务器的基本配置 13

1.3.2 php.ini文件的基本配置 13

1.4解决PHP的常见配置问题 14

1.4.1解决Apache服务器端口冲突 15

1.4.2设置PHP的系统当前时间 15

1.4.3增加PHP扩展模块 15

1.5照猫画虎——基本功训练 15

1.5.1基本功训练1——测试PHP环境是否搭建成功 15

1.5.2基本功训练2——第一次登录phpMyAdmin图形化管理工具 16

1.5.3基本功训练3——浏览PHP环境配置说明 16

1.5.4基本功训练4——解析PHP环境搭建的四大目录 17

1.5.5基本功训练5——编辑第一个PHP程序 18

1.6情景应用——拓展与实践 19

1.6.1情景应用1——输出系统的当前时间 19

1.6.2情景应用2——输出“明日科技欢迎您!” 20

1.6.3情景应用3——输出一个漂亮的图片 20

1.6.4情景应用4——更改Apache服务器的端口号为82 21

1.6.5情景应用5——Apache端口号修改后运行第一个PHP程序 21

1.7自我测试 22

1.8行动指南 23

1.9成功可以复制——PHP开山鼻祖Rasmus Lerdorf 24

第2堂课 PHP基础 25

2.1 PHP工作原理 26

2.2 PHP标记 27

2.3代码注释 27

2.3.1使用PHP注释 27

2.3.2有效使用注释 28

2.4 PHP常量 29

2.4.1声明和使用常量 29

2.4.2预定义常量 30

2.5 PHP变量 31

2.5.1声明变量 31

2.5.2变量作用域 33

2.5.3可变变量 35

2.6 PHP数据类型 35

2.6.1标量数据类型 35

2.6.2复合数据类型 38

2.6.3特殊数据类型 39

2.6.4转换数据类型 39

2.6.5检测数据类型 40

2.7 PHP的运算符 41

2.7.1算术运算符 41

2.7.2字符串运算符 42

2.7.3赋值运算符 42

2.7.4位运算符 43

2.7.5递增或递减运算符 43

2.7.6逻辑运算符 44

2.7.7比较运算符 45

2.7.8三元运算符 46

2.7.9运算符的使用规则 46

2.8照猫画虎——基本功训练 47

2.8.1基本功训练1——获取当前执行文件名称 47

2.8.2基本功训练2——加法计算器 48

2.8.3基本功训练3——输出姚明的个人信息 48

2.8.4基本功训练4——比较某一天的产品销量 49

2.8.5基本功训练5——根据工资多少判断购物地点 50

2.9情景应用——拓展与实践 50

2.9.1情景应用1——在留言板中输出系统当前时间 50

2.9.2情景应用2——根据奇偶天数安排工作任务 51

2.9.3情景应用3——计算长方形的面积 52

2.9.4情景应用4——检测变量是否为整型 52

2.9.5情景应用5——通过数据递增运算统计网站访问量 53

2.9.6情景应用6——输出学生的考试成绩 54

2.10自我测试 54

2.11行动指南 55

2.12成功可以复制——杀毒王王江民 56

第3堂课 PHP函数 59

3.1 PHP函数介绍 60

3.1.1定义和调用函数 60

3.1.2在函数间传递参数 60

3.1.3从函数中返回值 62

3.1.4变量函数 62

3.1.5对函数的引用 63

3.1.6取消引用 63

3.2 PHP变量函数库 64

3.3 PHP字符串函数库 65

3.4 PHP日期时间函数库 66

3.5 PHP数学函数库 67

3.6 PHP文件系统函数库 68

3.7 MySQL函数库 70

3.8照猫画虎——基本功训练 71

3.8.1基本功训练1——判断用户提交用户名是否为空 71

3.8.2基本功训练2——打印输出员工的个人信息 72

3.8.3基本功训练3——输出公司的企业文化 72

3.8.4基本功训练4——计算密码长度 73

3.8.5基本功训练5——验证输入时间是否有效 73

3.8.6基本功训练6——获取商品销量的最高值 74

3.8.7基本功训练7——读取文本文件中的数据 75

3.9情景应用——拓展与实践 76

3.9.1情景应用1——控制帖子标题的输出长度 76

3.9.2情景应用2——去除用户填写注册信息中的空格 77

3.9.3情景应用3——对关键字进行描红 78

3.9.4情景应用4——网页闹钟 79

3.9.5情景应用5——幸运数字抽奖 80

3.9.6情景应用6——数字验证码 80

3.9.7情景应用7——文本文件统计网站访问量 81

3.9.8情景应用8——购物车中商品的输出 83

3.9.9情景应用9——中文图像验证码 83

3.10自我测试 84

3.11行动指南 85

3.12成功可以复制——缔造华人的硅谷传奇杨致远 86

第4堂课 PHP流程控制语句 89

4.1程序的3种控制结构 90

4.1.1顺序结构 90

4.1.2选择(分支)结构 90

4.1.3循环结构 91

4.2条件控制语句 91

4.2.1 if条件控制语句 92

4.2.2 switch多分支语句 93

4.3循环控制语句 95

4.3.1 while循环语句 95

4.3.2 do…while循环语句 96

4.3.3 for循环语句 97

4.3.4 foreach循环语句 98

4.4跳转语句 100

4.4.1 break跳转语句 100

4.4.2 continue跳转语句 101

4.5包含语句 102

4.5.1 include()语句 103

4.5.2 require()语句 103

4.5.3 include_once()语句 104

4.5.4 require_once()语句 105

4.5.5 include()语句和require()语句的区别 106

4.6照猫画虎——基本功训练 107

4.6.1基本功训练1——对与错的判断 107

4.6.2基本功训练2——for语句计算阶乘 107

4.6.3基本功训练3——if语句判断闰年 108

4.6.4基本功训练4——用switch语句计算商品的折扣价格 108

4.6.5基本功训练5——向一个循环语句中发布终止指令 109

4.7情景应用——拓展与实践 110

4.7.1情景应用1——使用if语句判断美女征婚条件 110

4.7.2情景应用2——使用switch语句定制网页每日问候语 112

4.7.3情景应用3——使用while语句循环读取数组中数据 113

4.7.4情景应用4——switch网页框架 114

4.7.5情景应用5——使用for循环语句实现多图片上传 115

4.8自我测试 116

4.9行动指南 118

4.10成功可以复制——BEA创始人之一庄思浩 119

第5堂课 PHP数组应用 121

5.1数组概述 122

5.2数组类型 122

5.3声明数组 123

5.3.1用户创建数组 123

5.3.2函数创建数组 124

5.3.3创建二维数组 124

5.4遍历、输出数组 125

5.4.1遍历数组 125

5.4.2输出数组元素 128

5.5 PHP数组函数 128

5.5.1统计数组元素个数 128

5.5.2向数组中添加元素 129

5.5.3获取数组中最后一个元素 129

5.5.4删除数组中重复元素 129

5.5.5获取数组中指定元素的键名 130

5.6 PHP全局数组 131

5.6.1 $_SERVER[]全局数组 131

5.6.2 $_GET[]和$_POST[]全局数组 132

5.6.3 $_COOKIE全局数组 133

5.6.4 $_ENV[]全局数组 133

5.6.5 $_REQUEST[]全局数组 133

5.6.6 $_SESSION[]全局数组 134

5.6.7 $_FILES[]全局数组 134

5.7照猫画虎——基本功训练 134

5.7.1基本功训练1——输出数组中元素值 134

5.7.2基本功训练2——遍历数组 135

5.7.3基本功训练3——foreach语句遍历数组 135

5.7.4基本功训练4——将数组元素转换成字符串 136

5.7.5基本功训练5——去除数组中重复的元素 136

5.7.6基本功训练6——向数组中添加元素 137

5.7.7基本功训练7——获取服务器端的IP地址 137

5.8情景应用——拓展与实践 138

5.8.1情景应用1——字符串数组排序 138

5.8.2情景应用2——获取用户注册信息 139

5.8.3情景应用3——获取上传文件的数据 140

5.8.4情景应用4——生成在线考试题 140

5.8.5情景应用5——通过客户端IP地址限制投票次数 141

5.9自我测试 142

5.10行动指南 143

5.11成功可以复制——迅雷创始人邹胜龙 144

第6堂课 PHP与Web页面交互 147

6.1表单概述 148

6.1.1创建表单 148

6.1.2添加表单元素 148

6.1.3定义表单数据提交方法 152

6.2获取表单提交的数据 154

6.2.1 $_GET[]获取表单提交数据 154

6.2.2 $_POST[]获取表单提交数据 154

6.3获取超链接传递的数据 155

6.3.1通过超链接传递数据 156

6.3.2通过$GET[]获取超级链接传递的数据 156

6.3.3对超链接传递的数据进行编码、解码 157

6.4了解JavaScript脚本 158

6.4.1 JavaScript语言基础 158

6.4.2通过JavaScript脚本自定义函数 160

6.4.3 JavaScript脚本嵌入方式 161

6.4.4 JavaScript常用事件 166

6.5照猫画虎——基本功训练 167

6.5.1基本功训练1——设计一个用户登录表单 167

6.5.2基本功训练2——验证用户名和密码不能为空 168

6.5.3基本功训练3——输出用户登录信息 169

6.5.4基本功训练4——验证email地址格式是否正确 171

6.5.5基本功训练5——验证用户两次输入的密码是否一致 172

6.6情景应用——拓展与实践 173

6.6.1情景应用1——开发一个用户注册表单 173

6.6.2情景应用2——验证用户注册信息是否合理 174

6.6.3情景应用3——限制多行文本域输入的字符个数 176

6.6.4情景应用4——设置文本框的只读属性 178

6.6.5情景应用5——对超链接传递的数据进行编码 179

6.7自我测试 179

6.8行动指南 180

6.9成功可以复制——软件业的华人教父王嘉廉 181

第7堂课 MySQL数据库技术 183

7.1 MySQL概述 184

7.1.1 MySQL的特点 184

7.1.2 SQL和MySQL 184

7.2 MySQL服务器的启动和关闭 185

7.2.1启动MySQL服务器 185

7.2.2连接MySQL服务器 186

7.2.3关闭MySQL服务器 187

7.3操作MySQL数据库 187

7.3.1创建新数据库 187

7.3.2选择指定数据库 188

7.3.3删除指定数据库 188

7.4操作MySQL数据表 189

7.4.1创建一个表 189

7.4.2查看数据表结构 190

7.4.3修改数据表结构 191

7.4.4重命名数据表 192

7.4.5删除指定数据表 192

7.5操作MySQL数据 193

7.5.1向数据表中添加数据 193

7.5.2更新数据表中数据 193

7.5.3删除数据表中数据 194

7.5.4查询数据表中数据 194

7.6 MySQL数据类型 197

7.6.1数字类型 197

7.6.2字符串类型 198

7.6.3日期和时间数据类型 199

7.7 phpMyAdmin管理MySQL数据库 200

7.7.1管理数据库 200

7.7.2管理数据表 201

7.7.3管理数据记录 203

7.7.4导入导出数据 206

7.8照猫画虎——基本功训练 208

7.8.1基本功训练1——创建db_book图书数据库 208

7.8.2基本功训练2——在db_book数据库中创建图书信息表tb_mrbook 208

7.8.3基本功训练3——向tb_mrbook表中添加数据 209

7.8.4基本功训练4——修改tb_mrbook表中的数据 210

7.8.5基本功训练5——删除tb_mrbook表中指定数据 210

7.9情景应用——拓展与实践 211

7.9.1情景应用1——通过命令模式备份和恢复数据库 211

7.9.2情景应用2——MySQL的存储过程 213

7.9.3情景应用3——使用phpMyAdmin设置编码格式 214

7.9.4情景应用4——通过phpMyAdmin添加服务器新用户 215

7.9.5情景应用5——在phpMyAdmin中重置MySQL服务器登录密码 216

7.10自我测试 217

7.11行动指南 218

7.12成功可以复制——图文世界的缔造者约翰·沃洛克 219

第8堂课 PHP数据库编程技术 221

8.1 PHP操作MySQL数据库的步骤 222

8.2 PHP操作MySQL数据库的方法 222

8.2.1 mysql_connect()函数连接MySQL服务器 222

8.2.2 mysql_select_db()函数选择MySQL数据库 223

8.2.3 mysql_query()函数执行SQL语句 223

8.2.4 mysql_fetch_array()函数将结果集返回到数组中 224

8.2.5 mysql_fetch_row()函数从结果集中获取一行作为枚举数组 225

8.2.6 mysql_num_rows()函数获取查询结果集中的记录数 226

8.2.7 mysql_free_result()函数释放内存 227

8.2.8 mysql_close()函数关闭连接 227

8.3管理MySQL数据库中的数据 228

8.3.1向数据库中添加数据 228

8.3.2浏览数据库中的数据 229

8.3.3编辑数据库中的数据 230

8.3.4从数据库中删除数据 231

8.3.5批量数据操作 233

8.4照猫画虎——基本功训练 234

8.4.1基本功训练1——连接db_database08数据库 234

8.4.2基本功训练2——查询图书信息表中的前3条记录 235

8.4.3基本功训练3——对查询结果进行降序排列输出 236

8.4.4基本功训练4——更新指定图书的信息 237

8.4.5基本功训练5——删除指定的用户信息 239

8.5情景应用——拓展与实践 240

8.5.1情景应用1——用户注册模块 240

8.5.2情景应用2——用户登录模块 242

8.5.3情景应用3——浏览注册用户信息 242

8.5.4情景应用4——查询注册用户 243

8.5.5情景应用5——修改指定用户的注册信息 244

8.5.6情景应用6——分页浏览用户注册信息 246

8.6自我测试 247

8.7行动指南 248

8.8成功可以复制——射击游戏之父约翰·卡马克 249

第2部分 提高篇 253

第9堂课 Cookie与会话控制 253

9.1会话的操作 254

9.1.1创建会话 254

9.1.2配置PHP的会话 256

9.2会话的高级应用 257

9.2.1 SESSION临时文件 257

9.2.2 SESSION缓存 258

9.2.3 SESSION数据库存储 259

9.3 Cookie的操作 259

9.3.1创建Cookie 260

9.3.2访问Cookie 261

9.3.3删除Cookie 261

9.4 照猫画虎——基本功训练 262

9.4.1基本功训练1——初始化SESSION变量 262

9.4.2基本功训练2——通过SESSION变量在页面间传递数据 262

9.4.3基本功训练3——通过SESSION变量判断页面的访问权限 263

9.4.4基本功训练4——Cookie控制网页访问时间 264

9.4.5基本功训练5——通过Cookie保存用户登录信息 265

9.5情景应用——拓展与实践 266

9.5.1情景应用1——对SESSION变量编码和解码 266

9.5.2情景应用2——通过SESSION变量屏蔽刷新页面对计数器的影响 267

9.5.3情景应用3——通过Cookie计算在线考试答题时间 268

9.5.4情景应用4——Cookie自动登录 269

9.5.5情景应用5——通过SESSION控制页面的背景色 270

9.6自我测试 271

9.7行动指南 272

9.8成功可以复制——微型博客创始人埃文·威廉姆斯 273

第10堂课 字符串高级处理技术 275

10.1初识字符串 276

10.2转义、还原字符串 276

10.3截取字符串 277

10.4分割、合成字符串 278

10.5替换字符串 279

10.5.1 str_ireplace()函数 279

10.5.2 substr_replace()函数 280

10.6检索字符串 281

10.6.1 strstr()函数 281

10.6.2 substr_count()函数 281

10.7去掉字符串首尾空格和特殊字符 282

10.7.1 ltrim()函数 282

10.7.2 rtrim()函数 283

10.7.3 trim()函数 283

10.8字符串与HTML转换 284

10.9正则表达式 284

10.9.1什么是正则表达式 284

10.9.2正则表达式语法规则 285

10.10 PCRE兼容正则表达式函数 286

10.10.1字符串的匹配与查找 286

10.10.2字符串的替换 287

10.10.3字符串的分割 288

10.11照猫画虎——基本功训练 289

10.11.1基本功训练1——在网页中直接输出HTML脚本 289

10.11.2基本功训练2——substr()函数截取超长字符串 289

10.11.3基本功训练3——统一英文注册用户首字母的大小写 290

10.11.4基本功训练4——货币数据的格式化输出 291

10.11.5基本功训练5——验证email地址格式是否正确 291

10.11.6基本功训练6——实现字符串的替换 292

10.12情景应用——拓展与实践 293

10.12.1情景应用1——在论坛的帖子对PHP脚本进行转换输出 293

10.12.2情景应用2——以省略模式输出论坛中最新动态标题 293

10.12.3情景应用3——对查询的关键字进行描红、加粗 294

10.12.4情景应用4——通过字符串截取控制图像验证码的输出 295

10.12.5情景应用5——验证上传文件的格式是否正确 296

10.12.6情景应用6——验证用户提交的数据是否是整数 296

10.13自我测试 297

10.14行动指南 298

10.15成功可以复制——善于抓住时机的人徐少春 299

第11堂课 日期和时间的处理技术 301

11.1 PHP的时间观念 302

11.1.1在php.ini文件中设置时区 302

11.1.2通过date_default_timezone_set函数设置时区 302

11.2 UNIX时间戳 302

11.2.1获取任意日期、时间的时间戳 303

11.2.2获取当前时间戳 303

11.2.3日期、时间转换为UNIX时间戳 304

11.3日期和时间的处理 304

11.3.1格式化日期和时间 305

11.3.2获取日期和时间信息 306

11.3.3检验日期和时间的有效性 307

11.4照猫画虎——基本功训练 308

11.4.1基本功训练1——获取指定时间的UNIX时间戳 308

11.4.2基本功训练2——获取系统当前时间的时间戳 308

11.4.3基本功训练3——输出系统当前时间 309

11.4.4基本功训练4——倒计时 309

11.4.5基本功训练5——获取本地时间 310

11.5情景应用——拓展与实践 310

11.5.1情景应用1——比较两个时间的大小 310

11.5.2情景应用2——网页闹钟 311

11.5.3情景应用3——计算程序的运行时间 311

11.5.4情景应用4——输出中文格式的日期和时间 312

11.5.5情景应用5——检验日期和时间的有效性 312

11.6自我测试 313

11.7行动指南 314

11.8成功可以复制——C#语言之父安德斯·海尔斯伯格 315

第12堂课 图形图像处理技术 317

12.1了解GD2函数库 318

12.2设置GD2函数库 318

12.3学习常用图像处理技术 318

12.3.1创建画布 319

12.3.2颜色处理 319

12.3.3绘制文字 320

12.3.4输出图像 322

12.3.5销毁图像 323

12.4运用Jpgraph类库绘制图像 323

12.4.1 Jpgraph类库简介 323

12.4.2 Jpgraph的安装 323

12.4.3 Jpgraph创建3D饼形图展示部门业绩比较 324

12.5照猫画虎——基本功训练 325

12.5.1基本功训练1——绘制一个正方形 325

12.5.2基本功训练2——在画布中输出一行英文字符串 326

12.5.3基本功训练3——在背景图像上输出北京欢迎您 326

12.5.4基本功训练4——在照片上书写文字 327

12.5.5基本功训练5——Jpgraph创建折线图分析图书销售走势 328

12.6情景应用——拓展与实践 329

12.6.1情景应用1——GD2函数生成图像验证码 329

12.6.2情景应用2——通过图像显示密码安全强度 330

12.6.3情景应用3——通过柱状图展示2010年第一季度编程词典销量 331

12.6.4情景应用4——通过折线图分析2010年公司销售额 333

12.6.5情景应用5——通过饼形图区块分析2010年图书销量 334

12.6.6情景应用6——制作生活画册 334

12.7自我测试 336

12.8行动指南 337

12.9成功可以复制——因特网的点火人马克·安德森 338

第13堂课 文件目录处理技术 341

13.1基本的文件处理技术 342

13.1.1打开一个文件 342

13.1.2读取文件内容 344

13.1.3向文件中写入数据 347

13.1.4关闭文件指针 349

13.2目录操作技术 349

13.2.1打开指定目录 349

13.2.2读取目录结构 349

13.2.3关闭目录指针 350

13.3文件的上传技术 350

13.3.1开启文件上传功能 351

13.3.2全局变量$_FILES应用 351

13.3.3将上传文件移动到指定目录 353

13.3.4文件下载技术 354

13.4照猫画虎——基本功训练 355

13.4.1基本功训练1——通过文本文件统计网站访问量 355

13.4.2基本功训练2——读取文本文件中存储的用户注册协议 356

13.4.3基本功训练3——通过文本文件存储网站访问记录 356

13.4.4基本功训练4——验证指定的目录是否存在 357

13.4.5基本功训练5——控制上传文件的大小和格式 358

13.5情景应用——拓展与实践 359

13.5.1情景应用1——规范化的文件上传 359

13.5.2情景应用2——规范化的多文件上传 360

13.5.3情景应用3——header()函数执行文件下载 361

13.5.4情景应用4——文本文件的分页输出 362

13.5.5情景应用5——将数据以二进制格式上传到数据库 364

13.6自我测试 365

13.7行动指南 366

13.8成功可以复制——知识改变命运、科技改变生活李彦宏 367

第3部分 高级篇 371

第14堂课 面向对象的程序设计 371

14.1一切皆是对象 372

14.1.1什么是类 372

14.1.2对象的由来 372

14.1.3面向对象的特点 373

14.2类的声明 373

14.2.1类的定义 373

14.2.2成员属性 374

14.2.3成员方法 375

14.3类的实例化 375

14.3.1创建对象 375

14.3.2访问类中成员 376

14.3.3特殊的访问方法——“$this”和“::” 377

14.3.4构造方法和析构方法 378

14.4面向对象的封装特性 379

14.4.1 public(公共成员) 379

14.4.2 private(私有成员) 380

14.4.3 protected(保护成员) 380

14.5面向对象的继承特性 381

14.5.1类的继承——extends关键字 381

14.5.2类的继承——parent::关键字 382

14.5.3覆盖父类方法 383

14.6抽象类和接口 384

14.6.1抽象类 384

14.6.2接口 385

14.7面向对象的多态性 387

14.7.1通过继承实现多态 387

14.7.2通过接口实现多态 388

14.8面向对象的关键字 388

14.8.1 final关键字 388

14.8.2 static关键字——声明静态类成员 389

14.8.3 clone关键字——克隆对象 390

14.9面向对象的魔术方法 391

14.9.1_set()和_get()方法 391

14.9.2_isset()和_unset()方法 391

14.9.3_call()方法 392

14.9.4_toStfng()方法 392

14.9.5_autoload()方法 393

14.10照猫画虎——基本功训练 394

14.10.1基本功训练1——编写一个矩形类 394

14.10.2基本功训练2——用构造方法初始化 395

14.10.3基本功训练3——this关键字的用途 395

14.10.4基本功训练4——方法参数传递 396

14.10.5基本功训练5——方法的覆盖 397

14.11情景应用——拓展与实践 397

14.11.1情景应用1——数据统计类中定义求数值平方的方法 397

14.11.2情景应用2——封装一个数据库连接类 399

14.11.3情景应用3——封装一个数据库操作类 400

14.11.4情景应用4——封装分页类 401

14.11.5情景应用5——封装特殊字符转义类 402

14.12自我测试 403

14.13行动指南 404

14.14成功可以复制——中国通信设备行业的领跑者任正非 405

第15堂课 PHP与XML技术 407

15.1 XML的概述 408

15.2 XML语法 408

15.2.1 XML文档结构 408

15.2.2 XML声明 408

15.2.3处理指令 409

15.2.4注释 409

15.2.5 XML元素 409

15.2.6 XML属性 410

15.2.7使用CDATA标记 410

15.2.8 XML命名空间 411

15.3 SimpleXML系列函数操作XML 411

15.3.1创建SimpleXML对象 411

15.3.2遍历所有子元素 412

15.3.3遍历所有属性 413

15.3.4访问特定节点元素和属性 414

15.3.5修改XML数据 414

15.3.6保存XML文档 415

15.4 RSS阅读器 416

15.4.1 RSS概述 416

15.4.2 RSS 2.0的标准 417

15.4.3创建支持RSS阅读的站点 419

15.5照猫画虎——基本功训练 422

15.5.1基本功训练1——动态创建XML文档 422

15.5.2基本功训练2——动态读取XML文档 424

15.5.3基本功训练3——通过XPath查询XML中的数据 426

15.5.4基本功训练4——动态更新XML中的数据 428

15.5.5基本功训练5——动态删除XML中的数据 430

15.6情景应用——拓展与实践 432

15.6.1情景应用1——创建RSS阅读器的框架 432

15.6.2情景应用2——树状导航菜单输出频道组和频道 434

15.6.3情景应用3——Ajax无刷新读取订阅信息 435

15.6.4情景应用4——添加频道组 437

15.6.5情景应用5——添加频道 438

15.7自我测试 441

15.8行动指南 441

15.9成功可以复制——中国网络游戏产业的领军人陈天桥 442

第16堂课 PDO数据库抽象层 445

16.1什么是PDO 446

16.1.1 PDO概述 446

16.1.2 PDO特点 446

16.1.3安装PDO 446

16.2 PDO连接数据库 447

16.2.1 PDO构造函数 447

16.2.2 DSN详解 447

16.3 PDO中执行SQL语句 448

16.3.1 exec()方法 448

16.3.2 query()方法 448

16.3.3预处理语句——prepare()和execute() 448

16.4 PDO中获取结果集 449

16.4.1 fetch()方法 449

16.4.2 fetchAll()方法 450

16.4.3 fetchColumn()方法 451

16.5 PDO中捕获SQL语句中的错误 453

16.5.1使用默认模式——PDO::ERRMODE_SILENT 453

16.5.2使用警告模式——PDO::ERRMODE_WARNING 454

16.5.3使用异常模式——PDO::ERRMODE_EXCEPTION 455

16.6 PDO中错误处理 456

16.6.1 errorCode()方法 456

16.6.2 errorInfo()方法 457

16.7 PDO中事务处理 459

16.8 PDO中存储过程 460

16.9照猫画虎——基本功训练 461

16.9.1基本功训练1——连接MySQL数据库 461

16.9.2基本功训练2——通过PDO向数据库中添加数据 462

16.9.3基本功训练3——通过PDO浏览数据库中数据 463

16.9.4基本功训练4——通过PDO更新数据库中数据 464

16.9.5基本功训练5——连接MS SQL Server数据库 466

16.10情景应用——拓展与实践 467

16.10.1情景应用1——明日书店会员注册 467

16.10.2情景应用2——明日书店会员登录 468

16.10.3情景应用3——添加留言信息 469

16.10.4情景应用4——浏览客户留言 470

16.10.5情景应用5——查询留言内容 471

16.11自我测试 472

16.12行动指南 473

16.13成功可以复制——中国第一程序员求伯君 474

第17堂课 Smarty模板技术 477

17.1 Smarty模板引擎 478

17.1.1 Smarty模板引擎下载 478

17.1.2 Smarty模板引擎安装 479

17.1.3 Smarty模板引擎配置 479

17.1.4走进Smarty模板引擎 481

17.2 Smarty模板设计——静态页处理 482

17.2.1基本语法(注释、函数和属性) 482

17.2.2 Smarty模板设计变量 483

17.2.3变量调节器 484

17.2.4内建函数(动态文件、模板文件的包含和流程控制语句) 485

17.2.5自定义函数 487

17.2.6配置文件 487

17.3 Smarty程序设计——动态文件操作 489

17.3.1 SMARTY_PATH常量 489

17.3.2 Smarty程序设计变量 489

17.3.3 Smarty方法 489

17.3.4 Smarty缓存 490

17.4照猫画虎——基本功训练 492

17.4.1基本功训练1——封装Smarty模板的配置方法 492

17.4.2基本功训练2——Smarty模板中的页面设计 493

17.4.3基本功训练3——if语句判断当前用户权限 494

17.4.4基本功训练4——Smarty模板中日期、时间的格式化输出 496

17.4.5基本功训练5——register_object方法注册模板对象 496

17.5情景应用——拓展与实践 498

17.5.1情景应用1——Smarty模板中的truncate方法截取字符串 498

17.5.2情景应用2——Smarty模板制作后台管理系统主页 499

17.5.3情景应用3——html_option函数向下拉列表中添加列表项 501

17.5.4情景应用4——Smarty模板中应用正则表达式 503

17.5.5情景应用5——开启网站登录页面的缓存 505

17.6自我测试 506

17.7行动指南 507

17.8成功可以复制——征途巨人史玉柱 508

第18堂课 Zend Framework框架 511

18.1 Zend Framework的MVC介绍 512

18.1.1 Zend Framework概述 512

18.1.2 Zend Framework常用组件 512

18.1.3 MVC原理 512

18.2 Zend Framework的MVC环境搭建 513

18.2.1环境配置 513

18.2.2框架结构 514

18.2.3创建流程 515

18.2.4 Zend Framework的编码标准 518

18.3 Zend_Auth身份认证 519

18.3.1 Zend_Auth适配器 519

18.3.2身份持久认证 520

18.3.3数据库认证 523

18.4 Zend_Db数据库操作 524

18.4.1 Zend_Db_Adapter数据库操作 524

18.4.2 Zend_Db_Table数据库操作 524

18.4.3数据表类 526

18.5 Zend_File文件控制 530

18.5.1使用Zend_File_Transfer_Adapter_Http实现POST方式文件上传 530

18.5.2对上传文件的合理性验证 531

18.5.3为上传增加过滤规则 532

18.6 Zend_Layout网站布局 533

18.6.1 Zend_Layout概述 533

18.6.2 Zend_Layout使用方法 533

18.6.3 Zend_Layout应用实例 534

18.7 Zend_Paginator分页 536

18.7.1 Zend_Paginator简介 536

18.7.2 Zend_Paginator分页方法 536

18.7.3 Zend_Paginator分页应用 537

18.8照猫画虎——基本功训练 540

18.8.1基本功训练1——通过Zend_Acl控制角色和资源的权限 540

18.8.2基本功训练2——比较缓存日期与本地日期 542

18.8.3基本功训练3——应用Zend_Config配置站点初始参数 544

18.8.4基本功训练4——应用Zend_Form制作用户注册表单 547

18.8.5基本功训练5——应用Zend_Mail发送邮件 549

18.9情景应用——拓展与实践 551

18.9.1情景应用1——应用Zend_Framework进行用户身份验证 551

18.9.2情景应用2——应用Zend_Framework实现查询结果关键字描红 553

18.9.3情景应用3——应用Zend_Framework设计新闻发布系统首页 556

18.9.4情景应用4——应用Zend_Paginaator实现数据分页显示 560

18.9.5情景应用5——应用Zend_Mail接收邮件 561

18.10自我测试 564

18.11行动指南 564

18.12成功可以复制——创造互联网搜索时代拉里·佩奇和谢尔盖·布林 565

第19堂课 PHP的安全与防护 567

19.1 PHP加密函数 568

19.1.1使用crypt()函数进行加密 568

19.1.2使用md5()函数进行加密 569

19.1.3使用shal()函数进行加密 570

19.2 PHP加密扩展库 570

19.2.1 Mcrypt扩展库 570

19.2.2 Mhash扩展库 571

19.3 PHP漏洞和防护措施 572

19.3.1本地文件包含漏洞 572

19.3.2远程文件包含漏洞 573

19.3.3文件上传漏洞 573

19.3.4提交表单漏洞 574

19.3.5 SQL注入漏洞 575

19.4照猫画虎——基本功训练 575

19.4.1基本功训练1——通过crypt()函数进行加密 575

19.4.2基本功训练2——通过md5()函数进行加密 576

19.4.3基本功训练3——通过sha1()函数进行加密 576

19.4.4基本功训练4——通过mcrypt()函数进行加密、解密操作 577

19.4.5基本功训练5——通过mhash()扩展库进行加密、解密 578

19.5情景应用——拓展与实践 578

19.5.1情景应用1——通过crypt()函数对用户注册密码进行加密 578

19.5.2情景应用2——通过md5()函数对用户注册密码进行加密 579

19.5.3情景应用3——通过自定义函数实现加密操作 580

19.5.4情景应用4——隐藏PHP文件扩展名 580

19.5.5情景应用5——禁止用户输入敏感字符 581

19.6自我测试 583

19.7行动指南 584

19.8成功可以复制——初中站长的创业故事李兴平 585

第20堂课 PHP的字符编码 587

20.1字符集和编码 588

20.1.1 ISO8859字符集 588

20.1.2 GB2312与GBK字符集 588

20.1.3 Unicode字符集 589

20.1.4 UTF-8编码 589

20.2 PHP网页的字符编码 590

20.2.1设置编码格式 590

20.2.2转换编码格式 591

20.2.3检测字符串的编码 592

20.3 PHP开发中的乱码问题 593

20.3.1解决页面中的乱码问题 593

20.3.2数据库中的字符集编码问题 594

20.3.3避免截取中文字符串时出现乱码 595

20.4照猫画虎——基本功训练 596

20.4.1基本功训练1——Dreamweaver中编码格式的选择 596

20.4.2基本功训练2——创建gb2312编码格式的网页 597

20.4.3基本功训练3——通过iconv()函数实现编码格式的转换 598

20.4.4基本功训练4——通过header()函数设置PHP脚本文件的编码格式 599

20.4.5基本功训练5——设置MySQL数据库中数据的编码格式 599

20.5情景应用——拓展与实践 601

20.5.1情景应用1——采用utf-8编码设计论坛网页 601

20.5.2情景应用2——以utf8编码输出论坛中数据 602

20.5.3情景应用3——论坛中控制帖子标题输出的长度 603

20.5.4情景应用4——完成论坛中帖子的发布 605

20.5.5情景应用5——对输出的数据进行编码格式转换 606

20.6自我测试 607

20.7行动指南 608

20.8成功可以复制——暴雪公司的领航者迈克·莫汉 609

第21堂课 程序调试与错误处理 611

21.1基本调试策略 612

21.2常见错误分析 612

21.2.1语法错误 613

21.2.2定义错误 615

21.2.3逻辑错误 616

21.2.4运行错误 616

21.2.5环境错误 618

21.3 php.ini中的错误处理机制 619

21.3.1控制错误显示以及显示方式 619

21.3.2控制错误的级别 619

21.4程序调试方法 620

21.4.1应用DIE语句调试 620

21.4.2应用mysql_error()语句输出错误信息 621

21.5错误处理技巧 622

21.5.1隐藏错误 622

21.5.2自定义错误页面 622

21.6照猫画虎——基本功训练 623

21.6.1基本功训练1——解决程序的语法错误 623

21.6.2基本功训练2——计算商品的折扣价格 624

21.6.3基本功训练3——连接不存在的数据库 624

21.6.4基本功训练4——运行缺少第三方组件的程序 625

21.6.5基本功训练5——通过readfile()函数访问远程文件 626

21.7情景应用——拓展与实践 626

21.7.1情景应用1——分析、解决PHP与MySQL连接错误 626

21.7.2情景应用2——解决数据库乱码问题 628

21.7.3情景应用3——封装异常处理类 629

21.7.4情景应用4——使用错误处理器记录日志 630

21.7.5情景应用5——通过phpMyAdmin调试SQL语句中的错误 631

21.8自我测试 632

21.9行动指南 632

21.10成功可以复制——Java技术之父James Gosling 633

第4部分 实战篇 637

第22堂课 应用Smarty模板开发电子商务网站 637

22.1开发背景 638

22.2需求分析 638

22.3系统分析 638

22.3.1系统目标 638

22.3.2系统功能结构 639

22.3.3开发环境 639

22.3.4文件夹组织结构 640

22.4数据库设计 641

22.4.1数据库分析 641

22.4.2创建数据库和数据表 642

22.5公共文件设计 643

22.5.1数据库连接、管理和分页类文件 643

22.5.2 Smarty模板配置类文件 646

22.5.3执行类的实例化文件 646

22.6前台首页设计 646

22.6.1前台首页概述 646

22.6.2前台首页技术分析 647

22.6.3前台首页实现过程 647

22.7登录模块设计 649

22.7.1登录模块概述 649

22.7.2登录模块技术分析 650

22.7.3用户注册 651

22.7.4用户登录 653

22.7.5找回密码 655

22.8 会员信息模块设计 660

22.8.1会员信息模块概述 660

22.8.2会员信息模块技术分析 660

22.8.3会员中心 661

22.8.4安全退出 664

22.9商品展示模块设计 665

22.9.1商品展示模块概述 665

22.9.2商品展示模块技术分析 665

22.9.3商品展示模块的实现过程 666

22.10购物车模块设计 669

22.10.1购物车模块概述 669

22.10.2购物车模块技术分析 669

22.10.3购物车展示 671

22.10.4更改商品数量 673

22.10.5删除商品 674

22.10.6保存购物车 676

22.11收银台模块设计 678

22.11.1收银台模块概述 678

22.11.2收银台模块技术分析 678

22.11.3显示订单 678

22.11.4填写订单 679

22.11.5处理订单 679

22.12后台首页设计 681

22.12.1后台首页概述 681

22.12.2后台首页技术分析 681

22.12.3后台首页实现过程 683

22.13开发技巧与难点分析 684

22.13.1解决Ajax的乱码问题 684

22.13.2使用JS脚本获取、输出标签内容 685

22.13.3禁用页面缓存 685

22.13.4在新窗口中使用session 685

22.13.5判断上传文件格式 685

22.13.6设置服务器的时间 686

22.14开发总结 686

第23堂课 Zend Framework框架开发明日搜索引擎 687

23.1明日搜索引擎概述 688

23.2开发背景 688

23.3需求分析 688

23.4系统分析 688

23.4.1功能结构 689

23.4.2开发环境 689

23.5数据库设计 689

23.5.1数据库分析 690

23.5.2数据库概念设计 690

23.5.3创建数据库及数据表 691

23.6技术攻关 692

23.6.1类似Google搜索引擎的搜索条 692

23.6.2使用空格分隔多关键字 696

23.6.3关键字描红 699

23.6.4制作在线编辑器 701

23.7 MVC框架结构搭建 703

23.8首页设计 704

23.8.1首页概述 704

23.8.2首页技术分析 705

23.8.3首页的实现过程 705

23.9用户模块设计 708

23.9.1用户模块概述 708

23.9.2用户模块技术分析 708

23.9.3用户注册的实现过程 710

23.9.4用户登录的实现过程 712

23.10发表问题模块设计 714

23.10.1发表问题模块概述 714

23.10.2发表问题模块技术分析 715

23.10.3发表问题模块实现过程 716

23.11回复问题模块设计 718

23.11.1回复问题模块概述 718

23.11.2回复问题模块技术分析 719

23.11.3回复问题模块实现过程 719

23.12程序调试与错误处理 720

23.12.1项目开发过程中常见错误及解决方法 721

23.12.2自定义错误页面 721

23.13开发总结 722

第24堂课 学校图书馆管理系统 723

24.1开发背景 724

24.2需求分析 724

24.3系统设计 724

24.3.1系统目标 724

24.3.2系统功能结构 725

24.3.3系统流程图 725

24.3.4开发环境 725

24.3.5文件夹组织结构 726

24.4数据库设计 727

24.4.1数据库分析 727

24.4.2数据库概念设计 727

24.4.3创建数据库及数据表 728

24.5首页设计 729

24.5.1首页概述 729

24.5.2首页技术分析 730

24.5.3首页的实现过程 730

24.6管理员模块设计 731

24.6.1管理员模块概述 731

24.6.2管理员模块技术分析 732

24.6.3系统登录的实现过程 732

24.6.4查看管理员的实现过程 734

24.6.5添加管理员的实现过程 735

24.6.6设置管理员权限的实现过程 736

24.6.7删除管理员的实现过程 738

24.7图书档案管理模块设计 738

24.7.1图书档案管理模块概述 738

24.7.2图书档案管理模块技术分析 739

24.7.3查看图书信息列表的实现过程 739

24.7.4添加图书信息的实现过程 740

24.7.5修改图书信息的实现过程 742

24.7.6删除图书信息的实现过程 743

24.8图书借还模块设计 743

24.8.1图书借还模块概述 743

24.8.2图书借还模块技术分析 744

24.8.3图书借阅的实现过程 744

24.8.4图书续借的实现过程 747

24.8.5图书归还的实现过程 748

24.8.6图书借阅查询的实现过程 749

24.9开发技巧与难点分析 752

24.9.1如何自动计算图书归还日期 752

24.9.2如何对图书借阅信息进行统计排行 752

24.10开发总结 753

附录A PHP编码规则 755

A.1 PHP File文件格式 755

A.1.1常规 755

A.1.2缩进 755

A.1.3行的最大长度 755

A.1.4行结束标志 755

A.1.5引号 755

A.1.6运算符、小括号、空格和关键词 756

A.2命名约定 757

A.2.1类 757

A.2.2接口 757

A.2.3文件名 757

A.2.4函数和方法 758

A.2.5变量 758

A.2.6常量 759

A.2.7数据库表和字段 759

A.3编码风格 759

A.3.1 PHP代码划分(Demarcation) 759

A.3.2字符串 759

A.3.3数组 760

A.3.4类 760

A.3.5函数和方法 761

A.3.6控制语句 762

A.3.7数据库 763

A.3.8注释文档 764