词条 | PHP学习手册 |
释义 | 图书信息明日科技 潘凯华 杨明 等编著ISBN 978-7-121-12997-1 2011年3月出版 定价:59.00元(含DVD光盘1张) 16开 504页 宣传语编程成功之路从此开始! 内 容 简 介本书全面介绍了使用PHP进行Web开发的各种技术。在内容排列上由浅入深,让读者循序渐进地掌握编程技术;在内容讲解上结合丰富的图解和形象的比喻,帮助读者理解“晦涩难懂”的技术;在内容形式上附有大量的提示、技巧、说明、情景应用、实战练习等栏目,夯实读者编程技术,丰富编程经验。全书分为四篇共21章进行介绍。第一篇为基础篇,包括了解PHP、着手准备开发PHP的条件、了解Web页面的设计、PHP开发基础、PHP流程控制语句、字符串操作、正则表达式、初探数组、日期和时间;第二篇为核心篇,包括文件和目录处理技术、图形图像处理技术、Cookie和会话控制、面向对象、MySQL数据库设计、数据库编程技术;第三篇为高级篇,包括PDO数据库抽象层、ADODB数据库抽象层、PHP的字符编码、程序调试与异常处理、Smarty模板技术;第四篇为实战篇,包括企业网站开发模板。 本书附有配套光盘。光盘中提供本书所有程序的源代码和重点难点的实例视频录像。其中,源代码全部经过精心测试,能够在Windows 2000、Windows XP、Windows Server 2003、Windows 7编译和运行。 本书适用于PHP编程爱好者、初学者和中级开发人员,也可以作为大中专院校和培训机构的教材。 前 言让想要学习编程的人员都能够学会编程! 我可以学会编程吗? 当然可以!即使你没有基础,即使你是非计算机专业毕业,即使你已过而立之年,甚至是只有初中毕业。我国最早的计算机反病毒专家、江民杀毒软件创始人王江民,初中毕业,38岁开始学习计算机,因为英语基础不好,很多人认为他根本没有学会编程的可能。但王江民没有感觉自己不行,硬是克服各种困难,成为我国最成功的程序开发人员之一。 王江民学习编程的诀窍是什么? 是实践。王江民说:“计算机是实践性非常强的学科。我搞计算机是用计算机,不是学计算机。” 王江民首先学的是BASIC语言。当时,为了辅导上小学的孩子,对软件一片空白的王江民竟然决定编写程序代替家长辅导。短短3个月,王江民就边学边实践,编好了一套数学语文教学软件,试过后效果奇佳,参加电脑报软件交流,被评为第二名,誉为“教育软件第一”。因为这次成功,极大激发了王江民对编程的兴趣,使他从此把精力转到了软件领域。 所以说:实践,是学习编程的最好方法,也是培养编程乐趣、捕获发展机遇的最佳途径。值得注意的是,不要等学完全部知识才去实践,要随时学习,随时实践,哪怕只学了一点点。 这本书适合我吗? 非常适合!本书是学习PHP 编程的最佳选择。所讲内容通俗易懂,易于学习,贴近实践。对于学习中的难点、重点,注意结合实际开发,采用情景应用的方式进行介绍和练习。本书光盘提供了完整的视频讲座,可以对照本书内容循序渐进进行学习。利用本书,不但可以学会编程,更能激发学习者理论联系实际的热情,开发出符合市场需求的软件和项目。 本书内容本书分为基础篇、核心篇、高级篇和实战篇,共21章。内容安排按照从零起步,循序渐进的学习顺序,全面提高读者学、练、用的能力。本书知识结构如下图所示。 本书特色 最基础、最易学 为了让初学者易于学习,本书力求内容通俗易懂,讲解寓教于乐。对于初学者难理解的专业术语,本书都进行了形象的解释,有些还提供了例图。书后附录中又单独将专业术语提炼出来,供读者学习时参考。例如,在讲解面向对象的继承特性时,为使读者更容易理解,笔者定义一个水果类,水果类具有颜色属性,然后定义一个苹果类,在定义苹果类时完全可以不定义苹果类的颜色属性,通过如图2所示的继承关系完全可以使苹果类具有颜色属性。继承就是派生类(子类)自动继承一个或多个基类(父类)中的属性与方法,并可以重写或添加新的属性或方法。 语音视频讲座 为了方便读者学习本书内容,本书配套光盘中提供了12小时的视频讲座。其讲解细腻、层次清楚、互动性强,不但可以加深对书中内容的理解,还可以引导读者掌握“是什么”、“为什么”、“怎么办”、“应注意些什么”的编程思维能力。所讲视频不仅对书中的内容进行了详细介绍,还对相关技术进行了有效扩展,对开发中易犯的各种错误给出了视频解决方案。 注重实用性 初学者经常会遇到这样的情况,书中讲解的技术能够理解,但不知道如何应用。例如,在学习抽象类时,读者能够自己定义抽象类并且能够从抽象类派生子类,但是不知道抽象类能够做什么,在哪里应用抽象类。本书在介绍技术时,注意强调技术的实用性,并且通过实例突出技术的应用价值。对于一些典型的应用,书中通过“情景应用”栏目进行重点介绍。 实战互动练习 要掌握一项技术,最佳的方式就是多练习、多实践。本书每章都提供了多个供读者实践的实例任务,读者可以对照检验对知识的掌握情况。每个实例任务都分为“题目描述”、“技术指导”和“紧急救援”3部分。其中题目描述给出了实例功能的详细描述和效果图,技术指导给出了开发思路和关键技术,紧急救援提供了下载实例源码和开发文档的地址链接。 超值DVD光盘为了帮助读者学习和使用书中的实例,本书配套的DVD光盘中不仅提供有书中所有实例项目的源代码、素材、光盘使用说明书,还提供了12小时视频专题录像及5个项目源码。光盘目录如图3所示。 图3 光盘目录 本书适用人群本书是一部零基础编程图书,非常适合以下人员阅读: 零基础的初学编程人员 初中级程序开发人员 编程爱好者 想学编程的各企事业单位的在职人员 大中专院校的教师和学生 相关培训机构的教师和学员 本书参与作者本书由明日科技组织编写,参加编写的有潘凯华、杨明、刘欣、李慧、陈丹丹、李钟尉、李伟、杨丽、顾丽丽、刘龄龄、孟范胜、董大永、李继业、尹强、张磊、王小科、王军、赵会东、刘彬彬、王国辉、卢瀚、朱晓、安剑、巩建华、刘锐宁、李伟明、梁水、李鑫、孙秀梅、白伟明、张振坤、梁晓岚、肖鑫、刘莹、王乐乐、高春艳、宋坤等。由于作者水平有限,疏漏和不足之处在所难免,欢迎广大读者提出宝贵意见。 非学无以广才,非志无以成学。 祝大家读书快乐! 明日科技 2010年10月 目 录第一篇 基础篇 第1章 了解PHP 18 1.1 什么是PHP 19 1.2 选择PHP的理由 19 1.3 如何学好编程 22 1.4 准备PHP的开发条件 24 1.4.1 下载PHP及相关软件 24 1.4.2 代码编辑工具 24 1.4.3 下载PHP用户手册 26 1.5 本章小结 26 第2章 准备开发PHP的条件 27 2.1 AppServ—Windows版PHP集成化安装包 28 2.1.1 用AppServ搭建PHP开发环境 28 2.1.2 测试AppServ是否安装成功 30 2.2 XAMPP—Linux版PHP集成化安装包 31 2.2.1 用XAMPP搭建PHP开发环境 32 2.2.2 在Linux操作系统下启动、停止XAMPP 33 2.2.3 设置Linux版XAMPP中MySQL数据库root用户的密码 33 2.2.4 在Linux操作系统下编写第一个PHP程序 33 2.3 PHP开发环境的关键配置信息 34 2.3.1 Apache服务器的基本配置 34 2.3.2 PHP.INI文件的基本配置 35 2.4 解决PHP的常见配置问题 36 2.4.1 解决Apache服务器端口冲突 36 2.4.2 更改Apache服务器 默认存储的文件路径 36 2.4.3 在PHP.INI文件中更改上传文件的大小 37 2.4.4 增加PHP扩展模块 37 2.4.5 检测PHP是否支持MySQL数据库 38 2.5 Dreamweaver开发工具 38 2.5.1 情景应用一——Dreamweaver中编码格式的选择 38 2.5.2 情景应用二——Dreamweaver创建表格 39 2.5.3 情景应用三——Dreamweaver创建表单 43 2.5.4 情景应用四——Dreamweaver创建站点 45 2.5.5 情景应用五——Dreamweaver创建第一个PHP程序 46 2.6 本章小结 47 第3章 了解Web页面的设计 48 3.1 XHTML基础 49 3.1.1 XHTML语言的语法 49 3.1.2 XHTML文件的结构 51 3.1.3 编辑文字版面 53 3.1.4 插入图像与链接 55 3.1.5 编写XHTML表格 57 3.1.6 设计XHTML表单 58 3.1.7 情景应用一——编写用户注册信息页 61 3.1.8 情景应用二:文件域上传文件 62 3.2 CSS样式应用 63 3.2.1 将CSS样式嵌入到HTML中 63 3.2.2 CSS选择符 65 3.2.3 常见的CSS样式属性 67 3.2.4 情景应用——打造经典的导航栏 72 3.3 设计页面布局 74 3.3.1 <div>和<span>标记 74 3.3.2 区块模型 74 3.3.3 区块浮动 75 3.3.4 情景应用——设置一行两列浮动布局 77 3.4 实战练习 78 3.4.1 CSS+DIV设计网站首页 78 3.4.2 DIV标签设计论坛后台管理页面 79 3.5 本章小结 81 第4章 PHP开发基础 82 4.1 PHP的工作原理 83 4.2 学习运用代码注释 83 4.2.1 使用PHP注释 84 4.2.2 使用HTML注释 84 4.2.3 有效使用注释 85 4.3 PHP的常量应用 85 4.3.1 声明和使用常量 85 4.3.2 预定义常量 87 4.4 PHP的变量应用 88 4.4.1 理解变量 88 4.4.2 声明变量 88 4.4.3 变量作用域 89 4.4.4 可变变量 91 4.5 PHP的数据类型 92 4.5.1 标量数据类型 92 4.5.2 复合数据类型 96 4.5.3 特殊数据类型 97 4.5.4 转换数据类型 98 4.5.5 检测数据类型 100 4.6 PHP的运算符 101 4.6.1 算术运算符 101 4.6.2 字符串运算符 102 4.6.3 赋值运算符 102 4.6.4 位运算符 103 4.6.5 递增或递减运算符 103 4.6.6 逻辑运算符 104 4.6.7 比较运算符 105 4.6.8 三元运算符 105 4.6.9 运算符的使用规则 106 4.7 PHP的自定义函数 107 4.7.1 定义和调用函数 108 4.7.2 在函数间传递参数 109 4.7.3 函数的返回值 110 4.8 实战练习 111 4.8.1 网站中最新动态模块的中文字符串截取 111 4.8.2 论坛发布内容模块中对内容的格式化输出 112 4.9 本章小结 113 第5章 PHP流程控制语句 115 5.1 程序三种控制结构 116 5.1.1 顺序结构 116 5.1.2 选择(分支)结构 116 5.1.3 循环结构 116 5.2 条件控制语句 117 5.2.1 if条件控制语句 117 5.2.2 switch多分支语句 119 5.2.3 情景应用一——if语句判断美女征婚条件 121 5.2.4 情景应用二——switch网页框架 122 5.3 循环控制语句 123 5.3.1 while循环语句 124 5.3.2 do...while循环语句 124 5.3.3 for循环语句 125 5.3.4 foreach循环语句 127 5.3.5 情景应用一——while语句循环读取数据库中数据 128 5.3.6 情景应用二——for循环语句开发一个乘法口诀表 129 5.4 跳转语句 130 5.4.1 break跳转语句 130 5.4.2 continue跳转语句 131 5.4.3 return跳转语句 132 5.5 包含语句 133 5.5.1 include()语句 133 5.5.2 require()语句 134 5.5.3 include_once()语句 135 5.5.4 require_once()语句 135 5.5.5 include()语句和require()语句的区别 136 5.5.6 include_once()语句和require_once()语句的区别 138 5.6 实战练习 138 5.6.1 删除数据库中指定的数据表 138 5.6.2 for循环语句实现多图片上传 139 5.7 本章小结 140 第6章 字符串操作 141 6.1 初识字符串 142 6.2 转义、还原字符串 142 6.3 截取字符串 143 6.4 分割、合成字符串 145 6.5 替换字符串 146 6.5.1 str_ireplace()函数 146 6.5.2 substr_replace()函数 148 6.6 检索字符串 148 6.6.1 strstr()函数 148 6.6.2 substr_count()函数 149 6.7 去掉字符串首尾空格和特殊字符 150 6.7.1 ltrim()函数 150 6.7.2 rtrim()函数 151 6.7.3 trim()函数 152 6.8 字符串与HTML转换 152 6.9 情景应用 154 6.9.1 超长文本的分页输出 154 6.9.2 查询关键字描红 155 6.9.3 购物车中数据的读取 156 6.10 实战练习 157 6.10.1 PHP 5新型字符串输出XML数据信息 157 6.10.2 图像验证码的相关操作 158 6.11 本章小结 159 第7章 正则表达式 160 7.1 什么是正则表达式 161 7.2 正则表达式的语法规则 162 7.2.1 行定位符(^和$) 162 7.2.2 单词定界符(\\b、\\B) 162 7.2.3 字符类([ ]) 163 7.2.4 选择字符(|) 163 7.2.5 连字符(-) 163 7.2.6 排除字符([^]) 164 7.2.7 限定符(? * + {n,m}) 164 7.2.8 点号字符(.) 164 7.2.9 转义字符(\\) 165 7.2.10 反斜线(\\) 165 7.2.11 括号字符(()) 166 7.2.12 情景应用一——整合实用的正则表达式 166 7.2.13 情景应用二——调用正则表达式验证中文 168 7.3 PCRE兼容正则表达式函数 169 7.3.1 字符串的匹配与查找 169 7.3.2 情景应用一——应用正则表达式匹配电话号码格式 170 7.3.3 字符串的替换 172 7.3.4 情景应用二——应用正则表达式实现UBB使用帮助 173 7.3.5 字符串的分割 173 7.4 实战练习 174 7.4.1 正则表达式验证用户 7.4.1 注册信息的合理性 174 7.4.2 正则表达式验证提交的 7.4.1 购买数量是否是正整数 176 7.5 本章小结 177 第8章 初探数组 178 8.1 数组概述 179 8.2 数组类型 179 8.3 声明数组 180 8.3.1 用户创建数组 180 8.3.2 函数创建数组 181 8.3.3 创建二维数组 181 8.4 遍历、输出数组 182 8.4.1 遍历数组 183 8.4.2 输出数组元素 184 8.5 PHP的数组函数 185 8.5.1 统计数组元素个数 185 8.5.2 向数组中添加元素 185 8.5.3 获取数组中最后一个元素 186 8.5.4 删除数组中重复元素 186 8.5.5 获取数组中指定元素的键名 186 8.5.6 字符串与数组的转换 187 8.5.7 情景应用——读取网上调查中的数据 188 8.6 PHP的全局数组 189 8.6.1 $_SERVER[ ]全局数组 189 8.6.2 $_GET[ ]和$_POST[ ]全局数组 190 8.6.3 $_COOKIE全局数组 190 8.6.4 $_ENV[ ]全局数组 191 8.6.5 $_REQUEST[ ]全局数组 191 8.6.6 $_SESSION[ ]全局数组 191 8.6.7 $_FILES[ ]全局数组 191 8.6.8 情景应用——$_FILES[ ]全局数组在文件上传中的应用 191 8.7 实战练习 193 8.7.1 生成在线考试题 193 8.7.2 通过获取客户端IP地址限制投票次数 193 8.8 本章小结 195 第9章 日期与时间 196 9.1 PHP的时间观念 197 9.1.1 在PHP.INI文件中设置时区 197 9.1.2 通过date_default_timezone_set函数设置时区 197 9.2 UNIX时间戳 198 9.2.1 获取任意日期、时间的时间戳 198 9.2.2 获取当前时间戳 199 9.2.3 日期、时间转换为UNIX时间戳 199 9.3 日期和时间处理 201 9.3.1 格式化日期和时间 201 9.3.2 获取日期和时间信息 202 9.3.3 检验日期和时间的有效性 203 9.4 情景应用 204 9.4.1 获取系统当前时间和时间戳 204 9.4.2 比较两个时间的大小 204 9.4.3 倒计时 205 9.5 实战练习 205 9.5.1 计算程序的运行时间 205 9.5.2 网页闹钟 206 9.6 本章小结 207 第二篇 核心篇 第10章 文件和目录处理技术 210 10.1 基本的文件处理技术 211 10.1.1 打开一个文件 211 10.1.2 读取文件内容 214 10.1.3 向文件中写入数据 218 10.1.4 关闭文件指针 220 10.2 目录操作技术 220 10.2.1 打开指定目录 220 10.2.2 读取目录结构 221 10.2.3 关闭目录指针 222 10.3 文件的上传技术 223 10.3.1 开启文件上传功能 223 10.3.2 全局变量$_FILES应用 224 10.3.3 将上传文件移动到指定目录 225 10.3.4 文件下载技术 226 10.4 情景应用 227 10.4.1 通过文本文件统计网站访问量 227 10.4.2 规范化的文件上传 229 10.5 实战练习 231 10.5.1 从文本文件中读取注册服务条款 231 10.5.2 规范化的多文件上传 232 10.6 本章小结 233 第11章 图形图像处理技术 234 11.1 了解GD2函数库 235 11.2 设置GD2函数库 235 11.3 学习常用的图像处理技术 235 11.3.1 创建画布 236 11.3.2 颜色处理 237 11.3.3 绘制文字 237 11.3.4 输出图像 239 11.3.5 销毁图像 240 11.3.6 情景应用一——在照片上书写文字 240 11.3.7 情景应用二——GD2函数生成图像验证码 241 11.4 运用Jpgraph类库绘制图像 242 11.4.1 Jpgraph类库简介 242 11.4.2 Jpgraph的安装 242 11.4.3 情景应用一——柱状图展示2010年第一季度编程词典销量 243 11.4.4 情景应用二——折线图分析2010年公司销售额 245 11.4.5 情景应用三——多饼形图分析2010年图书销量 246 11.5 实战练习 248 11.5.1 GD2函数生成带有干扰线的图像验证码 248 11.5.2 Jpgraph创建折线图分析图书销售走势 249 11.5.3 Jpgraph创建3D饼形图展示部门业绩比较 250 11.6 本章小结 251 第12章 Cookie和会话控制 252 12.1 会话的操作 253 12.1.1 创建会话 253 12.1.2 配置PHP的会话 255 12.2 会话的高级应用 259 12.2.1 SESSION临时文件 259 12.2.2 SESSION缓存 259 12.2.3 SESSION数据库存储 261 12.3 Cookie的操作 263 12.3.1 设置Cookie 264 12.3.2 访问Cookie 265 12.3.3 删除Cookie 266 12.4 情景应用 267 12.4.1 登录验证 267 12.4.2 Cookie自动登录 269 12.5 实战练习 270 12.5.1 防止页面刷新 270 12.5.2 控制客户端Cookie 271 12.6 本章小结 272 第13章 面向对象 273 13.1 一切皆是对象 274 13.1.1 什么是类 274 13.1.2 对象的由来 274 13.1.3 面向对象的特点 275 13.2 类的声明 275 13.2.1 类的定义 275 13.2.2 成员属性 276 13.2.3 成员方法 277 13.3 类的实例化 277 13.3.1 创建对象 278 13.3.2 访问类中成员 278 13.3.3 特殊的访问方法——“$this”和“::” 279 13.3.4 构造方法和析构方法 280 13.4 面向对象的封装特性 281 13.4.1 public(公共成员) 282 13.4.2 private(私有成员) 282 13.4.3 protected(保护成员) 283 13.5 面向对象的继承特性 283 13.5.1 类的继承——extends关键字 283 13.5.2 类的继承——parent::关键字 284 13.5.3 覆盖父类方法 285 13.6 抽象类和接口 286 13.6.1 抽象类 286 13.6.2 接口 287 13.7 面向对象的多态性 289 13.7.1 通过继承实现多态 289 13.7.2 通过接口实现多态 290 13.8 面向对象的关键字 290 13.8.1 final关键字 291 13.8.2 static关键字——声明静态类成员 291 13.8.3 clone关键字——克隆对象 292 13.8.4 对象比较 293 13.8.5 instanceof关键字——对象类型检测 293 13.9 面向对象的魔术方法 293 13.9.1 _set()和_get()方法 294 13.9.2 _isset()和_unset()方法 294 13.9.3 _call()方法 294 12.9.4 _toString()方法 295 13.9.5 _autoload()方法 295 13.9.6 情景应用一——封装一个数据库连接类 296 13.9.7 情景应用二——封装一个数据库操作类 297 13.10 实战练习 298 13.10.1 分页类 299 13.10.2 万用表格 300 13.11 本章小结 301 第14章 MySQL数据库设计 302 14.1 MySQL概述 303 14.1.1 MySQL的特点 303 14.1.2 SQL和MySQL 303 14.2 MySQL服务器的启动和关闭 304 14.2.1 启动MySQL服务器 304 14.2.2 连接MySQL服务器 305 14.2.3 关闭MySQL服务器 305 14.3 操作MySQL数据库 306 14.3.1 创建新数据库 306 14.3.2 选择指定数据库 306 14.3.3 删除指定数据库 306 14.4 操作MySQL数据表 307 14.4.1 创建一个表 307 14.4.2 查看数据表结构 308 14.4.3 修改数据表结构 309 14.4.4 重命名数据表 310 14.4.5 删除指定数据表 310 14.5 操作MySQL数据 311 14.5.1 向数据表中添加数据(INSERT) 311 14.5.2 更新数据表中数据(UPDATE) 312 14.5.3 删除数据表中数据(DELETE) 312 14.5.4 查询数据表中数据 313 14.5.5 情景应用一——数据排序 316 14.5.6 情景应用二——limit控制输出数据的开始位置和记录数 316 14.6 MySQL数据类型 316 14.6.1 数字类型 317 14.6.2 字符串类型 317 14.6.3 日期和时间数据类型 319 14.7 用phpMyAdmin管理MySQL数据库 319 14.7.1 管理数据库 319 14.7.2 管理数据表 320 14.7.3 管理数据记录 322 14.7.4 导入/导出数据 324 14.8 实战练习 325 14.8.1 批量添加记录(LOAD DATA和MYSQLIMPORT) 325 14.8.2 在phpMyAdmin中重置MySQL服务器登录密码 326 14.9 本章小结 326 第15章 数据库编程技术 327 15.1 PHP操作MySQL数据库的步骤 328 15.2 PHP操作MySQL数据库的方法 329 15.2.1 mysql_connect()函数连接MySQL服务器 329 15.2.2 mysql_select_db()函数选择MySQL数据库 330 15.2.3 mysql_query()函数执行SQL语句 330 15.2.4 mysql_fetch_array()函数将结果集返回到数组中 331 15.2.5 mysql_fetch_row()函数从结果集中获取一行作为枚举数组 333 15.2.6 mysql_num_rows()函数获取查询结果集中的记录数 333 15.3 管理MySQL数据库中的数据 334 15.3.1 向数据库中添加数据 334 15.3.2 编辑数据库数据 335 15.3.3 从数据库中删除数据 336 15.3.4 批量数据操作 336 15.4 情景应用 337 15.4.1 通用查询 337 15.4.2 分组统计 338 15.4.3 对查询结果分页显示 339 15.4.4 站内搜索 340 15.5 实战练习 341 15.5.1 对查询结果进行跳转分页显示 341 15.5.2 高级查询 341 15.6 本章小结 342 第三篇 高级篇 第16章 PDO数据库抽象层 346 16.1 什么是PDO 347 16.1.1 PDO概述 347 16.1.2 PDO特点 347 16.1.3 安装PDO 347 16.2 PDO连接数据库 348 16.2.1 PDO构造函数 348 16.2.2 情景应用一——连接MySQL数据库 348 16.2.3 情景应用二——连接MS SQL Server数据库 349 16.2.4 情景应用三——连接Oracle数据库 350 16.3 PDO中执行SQL语句 350 16.3.1 exec()方法 351 16.3.2 query()方法 351 16.3.3 预处理语句——prepare()和execute() 352 16.3.4 情景应用一——通过PDO向数据库中添加数据 353 16.3.5 情景应用二——通过PDO更新数据库中数据 354 16.4 PDO中获取结果集 355 16.4.1 fetch()方法 355 16.4.2 fetchAll()方法 357 16.4.3 fetchColumn()方法 358 16.5 PDO中捕获SQL语句中的错误 359 16.5.1 使用默认模式——PDO::ERRMODE_SILENT 359 16.5.2 使用警告模式——PDO::ERRMODE_WARNING 360 16.5.3 使用异常模式——PDO::ERRMODE_EXCEPTION 361 16.6 PDO中错误处理 362 16.6.1 errorCode()方法 362 16.6.2 errorInfo()方法 363 16.7 PDO中事务处理 364 16.8 PDO中存储过程 366 16.9 实战练习 367 16.9.1 PDO读取MS SQL Server数据库中数据 367 16.9.2 PDO读取Oracle数据库中数据 368 16.10 本章小结 369 第17章 ADODB数据库抽象层 370 17.1 ADODB概述 371 17.1.1 ADODB的优点与缺点 371 17.1.2 ADODB的安装与操作流程 371 17.2 连接数据库系统和数据库 372 17.2.1 连接数据库系统——ADONewConnection()函数 372 17.2.2 数据库持久化连接——PConnect()函数 372 17.2.3 数据库非持久化连接——Connect()函数 372 17.2.4 情景应用一——ADODB连接MySQL数据库 373 17.2.5 情景应用二——ADODB连接Access数据库 374 17.2.6 情景应用三——ADODB连接MS SQL Server数据库 374 17.2.7 情景应用四——ADODB连接Oracle数据库 375 17.3 通过公共变量控制数据的存取方式 376 17.4 ADODB执行SQL语句 377 17.4.1 执行SQL语句——execute()函数 377 17.4.2 控制SELECT查询语句的起始位置——SelectLimit()函数 378 17.4.3 添加、更新数据——GetInsertSQL()、GetUpdateSQL()函数 379 17.4.4 操作SQL语句的其他方法 380 17.5 ADODB控制结果集 380 17.5.1 控制指针的方法 381 17.5.2 控制结果集内容的方法 382 17.5.3 日期格式和数据类型的转换 383 17.6 ADODB中的分页 384 17.6.1 ADODB分页函数 384 17.6.2 一个小巧的分页函数——ADODB_Pager()函数 385 17.7 ADODB中的错误处理 386 17.7.1 ADODB中的错误处理函数 386 17.7.2 ADODB中自定义的错误处理机制 387 17.7.3 情景应用——通过日志文件存储错误信息 388 17.8 ADODB中的事务处理 389 17.9 实战练习 390 17.9.1 封装ADODB连接数据库类 390 17.9.2 封装ADODB操作数据库类 391 17.9.3 封装ADODB分页类 392 17.9.4 通过事务处理机制保证数据转换的顺利完成 393 17.10 本章小结 395 第18章 PHP的字符编码 396 18.1 了解网页字符编码 397 18.1.1 ASCII 字符集 397 18.1.2 ISO 8859 字符集 397 18.1.3 GB2312与GBK编码 398 18.1.4 Unicode字符集 398 18.1.5 UTF-8编码 398 18.2 PHP网页的字符编码 399 18.2.1 设置编码格式 399 18.2.2 转换编码格式 400 18.2.3 检测字符串的编码 402 18.3 PHP开发中的乱码问题 403 18.3.1 解决页面中的乱码问题 403 18.3.2 数据库中的字符集编码问题 405 18.3.3 避免截取中文字符串时出现乱码 406 18.4 PHP区域化设置 407 18.4.1 PHP网页的区域化 407 18.4.2 使用setlocale()函数设置区域化 408 18.5 实战练习 409 18.5.1 避免截取超长文本时出现乱码 409 18.5.2 了解PHP编码规则 410 18.5.3 了解PHP编码风格 410 18.6 本章小结 412 第19章 程序调试与错误处理 413 19.1 基本调试策略 414 19.2 常见错误分析 414 19.2.1 语法错误 414 19.2.2 定义错误 417 19.2.3 逻辑错误 418 19.2.4 运行错误 419 19.2.5 环境错误 421 19.3 PHP.INI中的错误处理机制 422 19.3.1 控制错误显示及显示方式 423 19.3.2 控制错误的级别 423 19.4 程序调试方法 424 19.4.1 应用DIE语句调试 424 19.4.2 应用mysql_error()语句输出错误信息 425 19.4.3 应用try{}catch{}M语句抛出并捕获异常 425 19.5 错误处理技巧 427 19.5.1 隐藏错误 427 19.5.2 自定义错误页面 427 19.5.3 延长服务器执行时间——处理超时错误 428 19.6 情景应用 429 19.6.1 如何分析、解决PHP与MySQL连接错误 429 19.6.2 解决数据库乱码问题 431 19.7 实战练习 432 19.7.1 封装属于自己的异常处理类 432 19.7.2 使用错误处理器记录日志 433 19.8 本章小结 434 第20章 Smarty模板技术 435 20.1 走进Smarty模板引擎 436 20.1.1 Smarty模板引擎下载 437 20.1.2 Smarty模板引擎安装 437 20.1.3 Smarty模板引擎配置 437 20.1.4 情景应用一——走进Smarty模板引擎 439 20.1.5 情景应用二——封装Smarty模板的配置方法 440 20.2 Smarty模板设计——静态页处理 442 20.2.1 基本语法(注释、函数和属性) 442 20.2.2 Smarty模板设计变量 443 20.2.3 变量调节器 444 20.2.4 情景应用一——Smarty模板中日期、时间的格式化输出 445 20.2.5 情景应用二——通过组合修改器分隔多个变量调节器 445 20.2.6 内建函数(动态文件、模板文件的包含和流程控制语句) 446 20.2.7 情景应用三——Smarty模板创建网页框架 448 20.2.8 情景应用四——section语句循环输出数据库中的数据 450 20.2.9 自定义函数 451 20.2.10 配置文件 454 20.3 Smarty程序设计——动态文件操作 455 20.3.1 SMARTY_PATH常量 455 20.3.2 Smarty程序设计变量 455 20.3.3 Smarty方法 456 20.3.4 Smarty缓存 456 20.3.5 情景应用——开启网站注册页面的缓存 458 20.4 实战练习 460 20.4.1 Smarty+ADODB完成数据的分页输出 460 20.4.2 Smarty中通过truncate方法截取字符串 461 20.4.3 用Register_Function方法注册模板函数 462 20.4.4 Smarty模板中的关键字描红 464 20.5 本章小结 464 第四篇 实战篇 第21章 企业网站开发模板 466 21.1 明日企业网概述 467 21.2 开发背景 467 21.3 需求分析 467 21.4 功能结构 468 21.5 数据库设计 469 21.5.1 数据库概念设计 469 21.5.2 创建数据库及数据表 470 21.6 技术攻关 471 21.6.1 Smarty模板 471 21.6.2 最简单的网页框架 473 21.6.3 ADODB类库 473 21.6.4 封装分页类 474 21.7 首页设计 475 21.7.1 首页概述 475 21.7.2 首页技术分析 476 21.7.3 首页的实现过程 476 21.8 产品展示设计 478 21.8.1 产品展示概述 478 21.8.2 产品展示技术分析 478 21.8.3 产品展示实现过程 479 21.9 后台管理系统设计 480 21.9.1 后台管理系统概述 481 21.9.2 后台管理系统技术分析 481 21.9.3 后台管理系统实现过程 482 21.10 程序调试与错误处理 486 21.10.1 SQL语句的返回机制 486 21.10.2 错误处理 487 21.11 开发总结 488 附录 专业术语表 489 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。