PHP编程新手自学手册.pdf (PHP编程新手自学手册.pdf)(Z-Library)
php
No Description
192
Views
0
Downloads
0.00
Total Donations
Registered users can read the full content for free
Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.
Page
1
(This page has no text content)
Page
2
新手学编程 ABC 丛书 PHP 编程新手自学手册 谭贞军 等编著 机 械 工 业 出 版 社
Page
3
PHP 是当今使用最广的 Web 编程语言之一,在项目开发领域占据重要 的地位。本书循序渐进、由浅入深地讲解了 PHP 开发的核心技术,并通过具 体实例的实现过程,演练了各个知识点的具体使用流程。全书分为 4 篇,共 23 章。其中 1~7 章是基础篇,讲解了 PHP 入门、开发必备知识、语法基 础、流程控制、函数、数组、处理网页等知识;第 8~16 章是提高篇,讲解 了操作字符串、文件操作、图像处理、PHP 面向对象、会话管理、正则表达 式、错误调试、操作 XML Ajax 技术等知识;第 17~20 章是数据库篇,讲解 了 MySQL 数据库、PHP 与 MySQL 的编程、PHP 对其他数据库操作、模板 技术等知识;第 21~23 章是实例篇,分别通过图片管理系统、在线投票系 统、在线留言系统项目的实现过程,讲解了 PHP 在日常项目开发中的综合应 用流程。全书以日记为主线,以“一问一答”引出问题,并穿插了学习技巧 和职场生存法则,引领读者全面掌握 PHP 语言。 本书不但适用于 PHP 初学者,也适用于有一定 PHP 编程基础的读者, 还可供有一定造诣的程序员参考。 图书在版编目(CIP)数据 PHP 编程新手自学手册/谭贞军等编著.—北京:机械工业出版社,2012.8 (新手学编程 ABC 丛书) ISBN 978-7-111-39239-2 Ⅰ.①P… Ⅱ.①谭… Ⅲ.①PHP 语言―程序设计 Ⅳ.①TP312 中国版本图书馆 CIP 数据核字(2012)第 178337 号 机械工业出版社(北京市百万庄大街 22 号 邮政编码 100037) 策划编辑:丁 诚 杨 硕 责任编辑:杨 硕 责任印制:杨 曦 保定市中画美凯印刷有限公司印刷 2012 年 9 月第 1 版·第 1 次印刷 184mm×260mm·35.25 印张·874 千字 0001―3500 册 标准书号:ISBN 978-7-111-39239-2 ISBN 978-7-89433-654-5(光盘) 定价:89.00 元(含 1DVD) 凡购本书,如有缺页、倒页、脱页,由本社发行部调换 电话服务 网络服务 社服务中心:(010)88361066 教 材 网:http://www.cmpedu.com 销 售 一 部:(010)68326294 机工官网:http://www.cmpbook.com 销 售 二 部:(010)88379649 机工官博:http://weibo.com/cmp1952 读者购书热线:(010)88379203 封面无防伪标均为盗版
Page
4
丛书序 III 丛 书 序 从《杜拉拉升职记》谈起 近年来,职场小说备受青睐,李可老师的《杜拉拉升职记》更是受到广大读者的喜爱, 还被搬上了银幕。对许多人来说,职场生涯占据了整个人生的很大一部分时间,怎样才能在 职场中如鱼得水,是人们必须认真思考的重要问题。即将走上程序员岗位的读者朋友们,请 自问是否已经对未来的职场生涯胸有成竹? 本丛书不但可以帮助初学者提前演练职场生活,而且对在职人员也有借鉴意义。技术方 面的知识就不用再多说了,每一页所包含的内容都是作者多年来的技术结晶。阅读本丛书 后,希望读者们不但能学到编程技术,而且能够提前体验到职场中的一些常见场景,为将来 的职场生涯做一些准备。希望本书能为读者们解惑,也希望能激励读者们在这个行业继续奋 斗下去,迎接大家的将是明媚的阳光。 程序员的各个阶段 按照掌握技术的熟练程度来划分程序员的不同阶段,可以大体分为 5 个阶段。 1)初学者:处在此阶段的可能是一名在校学生,可能是应届毕业生,也可能是准备从 其他行业向编程行业转行的人员。其共同特点是刚开始学习编程知识,对每一个知识点都充 满了好奇,对未来充满期望。 2)菜鸟:这里的菜鸟可能是技术菜鸟,也可能是职场菜鸟。特点是某项技术的基本知 识已经学习完毕,但是没有经过项目的洗礼,尚需要实战演练来磨练。这个阶段一般指处于 试用期或者刚刚从事程序员工作的人员。 3)初级程序员:对项目开发的基本流程有了初步的认识,并通过工作实战演练了自己 的技术。此阶段处于进一步与同事、上级、下级和客户交流的摸索阶段,也是逐渐融入职场 的一个阶段。 4)高级程序员:开发经验丰富,技术扎实,对同事关系、上下级关系和客户关系已经 如鱼得水,也是事业发展的瓶颈阶段。此阶段的程序员在职场中一般是软件高级工程师。 5)资深程序员:技术实力和人脉关系俱佳,一个项目任务能如探囊取物般轻松完成。 但是也对自己的未来充满思索,想寻求待遇更好的职位,会考虑跳槽,也会考虑创业。为了 表述得更加直观,下面通过一幅图来展示程序员的成长历程。 本丛书书目 根据综合考虑分析,本丛书首批书目如下。 C 语言编程新手自学手册 C#编程新手自学手册 Visual C++编程新手自学手册 Java Web 编程新手自学手册 Java 编程新手自学手册 PHP 编程新手自学手册 编程算法新手自学手册
Page
5
PHP 编程新手自学手册 IV 技术菜鸟或职场 菜鸟。特点是某 项技术的基本知 识 已 经 学 习 完 毕,但是没有经 过项目的洗礼, 尚需要实战演练 来磨练。 处在此阶段的可能是一名在校 学生,可能是应届毕业生,也 可能是准备从其他行业向编程 行业转行的人员。其共同特点 是刚开始学习编程知识,对每 一个知识点都充满了好奇,对 未来充满期望。 对项目开发的基本流程有了自己的认 识,并通过工作实战演练了初步的技 术。此阶段处于进一步与同事、上 级、下级和客户交流的摸索阶段,也 是融入职场的一个阶段。 开发经验丰富,技术扎实,对同事关 系、上下级关系和客户关系已经如鱼 得水,但也是事业进一步发展的瓶颈 阶段。 技术实力和人脉关系俱佳,一个项目 任务能如探囊取物般轻松完成。对自 己的未来充满思索,想寻求待遇更好 的职位。会考虑跳槽,也会考虑创 业。
Page
6
丛书序 V 致读者 学习程序开发之路是充满挑战之路,也是充满乐趣之路,这条路没有捷径可走。梦想像 《天龙八部》中虚竹那样轻松获得一甲子功力,是不现实的。读者们要想真正学好编程,需 要付出辛苦的汗水。根据笔者的亲身体会,替读者总结出 3 条学习编程的建议。 (1)培养兴趣 无论做什么事情,只要有了兴趣,就喜欢花费时间去做它。只要喜欢感受那调试成功的 喜悦,就说明已经对编程产生了兴趣。这种喜悦会使自己更加喜欢编程,会带来成就感。闲 暇时刻建议多去专业编程论坛逛一逛,灌灌水。论坛里的朋友们不但能帮助自己解决问题, 而且还能带来其他非技术性的收获。 (2)脚踏实地 欲速则不达,学编程切忌有浮躁的心态。很多初学者刚学会了基本语法知识,调试成功 了几段代码,就迫不及待大声宣布:“我精通 PHP 了”。但是当遇到问题之后才发现,自己 学到的只是九牛一毛。常说“书山有路勤为径,学海无涯苦作舟”,是很有道理的。 (3)多实践 程序开发很强调实践动手能力,所以实践就变得尤为重要。有前辈高人认为,学习编程 的秘诀是“编程、编程、再编程,练习,练习,再练习”,笔者深表赞同。学编程不仅要多 实践,而且要快实践。在看书的时候,不要等到完全理解了才动手,而是应该在看书的同时 敲代码,程序运行的各种情况可以让自己更快、更牢固地掌握知识点。 我们的服务邮箱是 150649826@qq.com,读者在阅读本丛书时,如果发现错误或遇到问 题,可以发送电子邮件及时与我们联系,我们会尽快给予答复。 丛书编委会
Page
7
PHP 编程新手自学手册 VI 前 言 PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速地执行动态网页。与其他的编程语言相比,用 PHP 做出的动态页面是将程序嵌入 到 HTML 文档中去执行,执行效率比完全生成 HTML 标记的 CGI 要高许多;PHP 还可以执 行编译后的代码,编译可以达到加密和优化代码运行的效果,使代码运行更快。PHP 具有非 常强大的功能,所有的 CGI 的功能 PHP 都能实现,而且几乎支持所有流行的数据库以及操 作系统。 现在 PHP 已经是全球最普及、应用最广泛的互联网开发语言之一。PHP 语言具有简 单、易学、源码开放,可操纵多种主流与非主流的数据库,支持面向对象的编程,支持多 种开源框架,支持跨平台的操作,而且完全免费等特点,越来越受到广大程序员的青睐。 本书的最大特色是以日记为主线,用一问一答的模式引出知识点。本书讲解了一名大学 生从学习编程开始,到顺利毕业并进入职场的成长历程,既讲授编程技术,也传授了职场经 验。 本书作者遵循了理论加实践的写作模式,在每个知识点讲解完毕之后,都会用一个具体 实例来演练知识点的用法。所有实例都是具有代表性的。 在配套光盘中不但有书中实例的源代码,而且有全程视频讲解的 PPT 电子教案。此光 盘中还向读者提供了多个典型应用案例,并且为书中的项目案例都配备了详细的视频讲解。 参与本书编写的人员有:谭贞军,陈强,周秀,张兴建,王梦,管西京,张子言,朱万 林,王孟,李强,陈德春,周涛,刘海洋,关立勋,孟娜,王石磊,徐亮,张储,蒋凯,扶 松柏,唐凯,焦甜甜,张斌,杨国华,杨絮,张玲玲。 在编写本书的过程中,我们始终本着科学、严谨的态度,力求精益求精,但错误、疏漏 之处在所难免,敬请广大读者批评指正。 编 者
Page
8
目 录 VII 目 录 丛书序 前言 第一篇 基础篇 第 1 章 PHP 入门 ························································································································ 1 1.1 认识 PHP 页面 ··············································································································· 2 1.2 PHP 介绍 ························································································································ 3 1.2.1 PHP 的发展 ·············································································································· 3 1.2.2 PHP 的功能特点 ······································································································· 4 1.2.3 我国使用 PHP 开发的网站 ························································································· 4 1.3 搭建开发环境 ················································································································ 5 1.3.1 Apache 的下载、安装和配置 ····················································································· 6 1.3.2 PHP 的下载、安装和配置 ························································································· 9 1.3.3 安装 MySQL ·········································································································· 11 1.3.4 安装 phpMyAdmin ·································································································· 15 1.4 学习 PHP 应具备的知识 ····························································································· 16 1.4.1 HTML 基础知识 ····································································································· 16 1.4.2 CSS 基础知识 ········································································································ 16 1.4.3 JavaScript 基础知识 ································································································ 16 1.5 快速搭建 PHP 运行环境 ····························································································· 16 1.5.1 PHPnow 的安装 ······································································································ 17 1.5.2 XAMPP 的安装 ······································································································ 18 1.6 一个简单的 PHP 程序 ································································································· 20 1.7 疑难问题解析 ·············································································································· 21 职场点拨——看 PHP 的重要性 ·························································································· 22 第 2 章 PHP 开发必备知识 ······································································································ 23 2.1 认识一个表单 ·············································································································· 23 2.2 HTML 基础 ·················································································································· 24 2.3 文字的设置 ·················································································································· 25 2.3.1 标题格式 ··············································································································· 25 2.3.2 将文字加粗、倾斜和加底线 ···················································································· 27 2.3.3 设定文字的大小、颜色、字形 ················································································· 28 2.3.4 在文字中插入空格和分段 ························································································ 29 2.4 标示标记的使用 ·········································································································· 30
Page
9
PHP 编程新手自学手册 VIII 2.5 表单 ······························································································································ 32 2.5.1 表单容器<form> ····································································································· 32 2.5.2 单行文本框 ············································································································ 33 2.5.3 单选按钮 ··············································································································· 34 2.5.4 多行文本框和按钮 ·································································································· 35 2.6 使用 Dreamweaver 创建 CSS 样式 ············································································· 36 2.6.1 创建 CSS 样式 ········································································································ 36 2.6.2 应用 CSS 样式 ········································································································ 38 2.7 使用 JavaScript ············································································································· 40 2.7.1 如何创建简单的 JavaScript ······················································································ 40 2.7.2 常用的 JavaScript 模块 ···························································································· 41 2.8 疑难问题解析 ·············································································································· 48 职场点拨——怎样学编程 ···································································································· 48 第 3 章 PHP 语法基础 ·············································································································· 50 3.1 认识一段 PHP 代码 ····································································································· 50 3.2 PHP 的语法结构 ·········································································································· 52 3.2.1 PHP 文件构成 ········································································································ 52 3.2.2 PHP 的标记 ············································································································ 53 3.3 PHP 的页面注释 ·········································································································· 55 3.4 PHP 的变量 ·················································································································· 56 3.4.1 变量的定义 ············································································································ 56 3.4.2 变量赋值与引用赋值 ······························································································ 57 3.4.3 变量范围 ··············································································································· 57 3.4.4 可变变量 ··············································································································· 59 3.5 PHP 的常量 ·················································································································· 60 3.6 数据类型 ······················································································································ 61 3.6.1 简单类型 ··············································································································· 61 3.6.2 复合类型 ··············································································································· 65 3.6.3 特殊类型 ··············································································································· 65 3.7 运算符 ·························································································································· 65 3.7.1 算术运算符 ············································································································ 65 3.7.2 赋值运算符 ············································································································ 67 3.7.3 自增自减运算符 ····································································································· 67 3.7.4 位运算符 ··············································································································· 69 3.7.5 逻辑运算符 ············································································································ 69 3.7.6 字符串运算符········································································································· 70 3.7.7 运算符的优先级别 ·································································································· 71 3.8 表达式 ·························································································································· 72 3.9 疑难问题解析 ·············································································································· 73
Page
10
目 录 IX 职场点拨——面试经验谈 ···································································································· 74 第 4 章 流程控制 ······················································································································· 76 4.1 认识一段语句 ·············································································································· 77 4.2 条件语句 ······················································································································ 77 4.2.1 if 条件语句 ············································································································ 78 4.2.2 if…else 语句··········································································································· 78 4.2.3 多个 else 关键字 ····································································································· 79 4.2.4 switch 语句 ············································································································ 80 4.3 循环语句 ······················································································································ 81 4.3.1 while 语句 ·············································································································· 81 4.3.2 do…while 语句 ······································································································· 83 4.3.3 for 语句 ················································································································· 84 4.3.4 for 循环的嵌套语句 ································································································ 86 4.3.5 各个循环语句的区别 ······························································································ 87 4.4 跳转语句 ······················································································································ 88 4.4.1 break 语句 ·············································································································· 88 4.4.2 continue 语句 ·········································································································· 89 4.4.3 return 跳转语句 ······································································································ 90 4.5 疑难问题解析 ·············································································································· 92 职场点拨——谈职业规划 ···································································································· 92 第 5 章 函数 ······························································································································· 94 5.1 认识函数 ······················································································································ 94 5.2 什么是函数 ·················································································································· 95 5.2.1 有条件的函数········································································································· 95 5.2.2 函数中的函数········································································································· 96 5.3 自定义函数 ·················································································································· 96 5.4 函数间传递参数 ·········································································································· 98 5.4.1 通过引用传递参数 ·································································································· 98 5.4.2 按照默认值传递参数 ······························································································ 98 5.4.3 使用非标量类型作为默认参数 ················································································· 99 5.4.4 函数返回值 ·········································································································· 100 5.5 文件包含 ···················································································································· 101 5.5.1 require 包含文件 ··································································································· 101 5.5.2 include 包含文件 ··································································································· 102 5.5.3 require 和 include 的区别 ······················································································· 103 5.6 数学函数 ···················································································································· 104 5.6.1 数的基本运算······································································································· 104 5.6.2 角度的运算 ·········································································································· 105 5.7 变量处理函数 ············································································································ 105
Page
11
PHP 编程新手自学手册 X 5.8 日期和时间函数 ········································································································ 106 5.9 使用 PHP 函数手册 ··································································································· 107 5.9.1 获得 PHP 函数手册 ······························································································· 107 5.9.2 使用 PHP 函数手册 ······························································································· 110 5.10 疑难问题解析 ·········································································································· 112 职场点拨——谈模块化设计思想 ······················································································ 113 第 6 章 数组 ····························································································································· 115 6.1 认识数组 ···················································································································· 115 6.2 声明数组 ···················································································································· 117 6.2.1 声明一维数组······································································································· 117 6.2.2 数组的定位 ·········································································································· 118 6.2.3 二维数组 ············································································································· 121 6.3 对数组进行简单的操作 ····························································································· 121 6.3.1 去掉数组重复的元素 ···························································································· 121 6.3.2 删除数组中的元素或删除整个数组 ········································································ 122 6.3.3 遍历数组元素······································································································· 123 6.3.4 向数组中添加数据 ································································································ 125 6.3.5 改变数组的大小 ··································································································· 126 6.3.6 合并两个数组······································································································· 129 6.3.7 反转一个数组······································································································· 130 6.4 其他数组函数 ············································································································ 131 6.4.1 对数组所有的元素求和 ························································································· 131 6.4.2 将一维数组拆分成多维数组 ·················································································· 132 6.4.3 对数组元素进行随机排序 ······················································································ 132 6.5 疑难问题解析 ············································································································ 133 职场点拨——程序员必须具备与客户沟通的技巧 ·························································· 134 第 7 章 PHP 表单处理网页 ···································································································· 135 7.1 认识表单 ···················································································································· 135 7.2 表单数据的提交方式 ································································································· 139 7.2.1 GET 方法 ············································································································· 139 7.2.2 POST 方法 ··········································································································· 141 7.3 获取表单元素的数据 ································································································· 142 7.3.1 获取按钮的数据 ··································································································· 143 7.3.2 获取文本框的数据 ································································································ 144 7.3.3 获取单选按钮的数据 ···························································································· 144 7.3.4 获取复选框的数据 ································································································ 145 7.3.5 获取列表框的数据 ································································································ 146 7.3.6 获取隐藏字段的值 ································································································ 149 7.4 对表单传递的变量值进行编码与解码 ····································································· 150
Page
12
目 录 XI 7.5 疑难问题解析 ············································································································ 151 职场点拨——如何成为一名优秀的程序员 ······································································ 151 温故而知新——第一篇实战范例 ······························································································ 153 范例 1 搭建 PHP 的运行环境 ························································································· 153 范例 2 HTML 的标签 ······································································································ 153 范例 3 运算 ······················································································································ 157 范例 4 流程控制语句 ······································································································ 158 第二篇 提高篇 第 8 章 操作字符串 ················································································································· 160 8.1 认识字符串 ················································································································ 161 8.2 将特殊字符去掉 ········································································································ 161 8.2.1 去除多余字符······································································································· 162 8.2.2 格式化字符串······································································································· 163 8.3 单引号和双引号 ········································································································ 164 8.4 字母大小写互相转换 ································································································· 165 8.4.1 将字符串转换成小写 ···························································································· 165 8.4.2 将字符串转换成大写 ···························································································· 166 8.4.3 将字符转换成大写 ································································································ 167 8.4.4 将字符每个单词的首字母转换成大写 ····································································· 168 8.5 获取字符串长度 ········································································································ 168 8.6 查找和替换字符串 ····································································································· 170 8.6.1 查找字符串 ·········································································································· 170 8.6.2 定位字符串 ·········································································································· 173 8.6.3 字符串替换 ·········································································································· 175 8.7 ASCII 编码与字符串 ································································································· 178 8.7.1 chr()函数 ············································································································· 178 8.7.2 ord()函数 ············································································································· 179 8.8 分解字符串 ················································································································ 180 8.9 加入和去除转义字符“\” ························································································ 181 8.10 疑难问题解析 ·········································································································· 182 职场点拨——和上级的沟通之道 ······················································································ 182 第 9 章 文件操作 ····················································································································· 184 9.1 看一段代码 ················································································································ 185 9.2 文件访问 ···················································································································· 186 9.2.1 判断文件或者目录是否存在 ·················································································· 186 9.2.2 打开文件 ············································································································· 187 9.2.3 关闭文件 ············································································································· 188 9.3 读/写文件 ··················································································································· 189
Page
13
PHP 编程新手自学手册 XII 9.3.1 写入数据 ············································································································· 189 9.3.2 读取数据 ············································································································· 192 9.4 指针 ···························································································································· 197 9.5 目录操作 ···················································································································· 199 9.5.1 打开目录 ············································································································· 199 9.5.2 遍历目录 ············································································································· 200 9.5.3 目录的创建、合法性与删除 ·················································································· 202 9.5.4 其他文件处理函数 ································································································ 205 9.6 疑难问题解析 ············································································································ 206 职场点拨——做一个优秀的团队成员 ·············································································· 207 第 10 章 图像处理 ··················································································································· 208 10.1 一段代码 ·················································································································· 208 10.2 图形图像的简单处理 ······························································································· 209 10.2.1 画布的创建 ········································································································ 209 10.2.2 设置图像的颜色 ································································································· 210 10.2.3 创建图像 ············································································································ 211 10.2.4 绘制几何图形 ····································································································· 212 10.3 几何图形的填充······································································································· 215 10.3.1 进行区域填充 ····································································································· 215 10.3.2 矩形、多边形和椭圆形的填充 ············································································· 217 10.3.3 圆弧的填充 ········································································································ 218 10.4 输出文字 ·················································································································· 221 10.4.1 输出英文 ············································································································ 221 10.4.2 输出中文 ············································································································ 222 10.5 复杂图形的处理······································································································· 223 10.5.1 圆形的重叠 ········································································································ 223 10.5.2 温度计的绘制 ····································································································· 224 10.5.3 绘制销售报表 ····································································································· 226 10.5.4 设置线型 ············································································································ 229 10.6 疑难问题解析 ·········································································································· 230 职场点拨——何处寻兼职 ·································································································· 231 第 11 章 PHP 面向对象 ·········································································································· 232 11.1 看一段代码 ·············································································································· 232 11.2 使用类 ······················································································································ 234 11.2.1 创建一个简单的类 ······························································································ 234 11.2.2 编写类的属性和方法 ··························································································· 234 11.3 构造函数和析构函数 ······························································································· 236 11.4 实例化类 ·················································································································· 237 11.5 类的访问控制 ··········································································································· 237
Page
14
目 录 XIII 11.6 类的基本操作 ··········································································································· 238 11.6.1 类方法的调用 ····································································································· 238 11.6.2 创建一个完整的类 ······························································································ 239 11.7 面向对象的高级编程 ······························································································· 244 11.7.1 类的继承 ············································································································ 244 11.7.2 接口的实现 ········································································································ 246 11.7.3 多态的实现 ········································································································ 247 11.7.4 作用域分辨运算符“::” ······················································································ 247 11.7.5 parent 关键字 ······································································································ 248 11.7.6 final 关键字 ········································································································ 249 11.7.7 static 关键字 ······································································································· 250 11.8 疑难问题解析 ··········································································································· 251 职场点拨——兼职可靠吗? ······························································································ 252 第 12 章 会话管理 ··················································································································· 253 12.1 看一段会话管理代码 ······························································································· 253 12.2 什么是会话控制······································································································· 255 12.2.1 Cookie 概述 ········································································································ 255 12.2.2 会话控制 ············································································································ 255 12.3 简单操作 Cookie ······································································································ 255 12.3.1 Cookie 的设置 ···································································································· 256 12.3.2 删除 Cookie ········································································································ 256 12.3.3 Cookie 数组 ········································································································ 257 12.3.4 header 函数 ········································································································ 258 12.4 会话控制 ·················································································································· 259 12.4.1 会话的基本方式 ································································································· 259 12.4.2 创建会话 ············································································································ 260 12.5 会话的实际应用······································································································· 262 12.5.1 禁止使用页面刷新 ······························································································ 262 12.5.2 验证登录 ············································································································ 264 12.6 疑难问题解析 ·········································································································· 266 职场人生——同事交往经验谈 ·························································································· 267 第 13 章 正则表达式 ··············································································································· 268 13.1 看一段代码 ·············································································································· 268 13.2 正则表达式概述······································································································· 269 13.2.1 什么是正则表达式 ······························································································ 269 13.2.2 正则表达式的专业术语 ······················································································· 270 13.3 正则表达式的组成元素 ··························································································· 270 13.3.1 普通字符 ············································································································ 270 13.3.2 特殊字符 ············································································································ 270
Page
15
PHP 编程新手自学手册 XIV 13.3.3 限定符 ··············································································································· 271 13.4 正则表达式的匹配 ··································································································· 271 13.4.1 搜索字符串 ········································································································ 271 13.4.2 从 URL 取出域名 ································································································ 273 13.5 轻松匹配单个字符 ··································································································· 273 13.6 锚定一个匹配 ·········································································································· 274 13.6.1 插入符“^”的应用 ····························································································· 274 13.6.2 符号“$”的应用 ································································································ 275 13.7 替换匹配 ·················································································································· 276 13.8 处理正则表达式的函数 ··························································································· 276 13.8.1 ereg()函数 ·········································································································· 276 13.8.2 eregi()函数 ········································································································· 277 13.8.3 ereg_replace()函数 ······························································································· 277 13.8.4 split()函数 ·········································································································· 278 13.8.5 eregi_replace()函数和 spliti()函数 ·········································································· 278 13.9 疑难问题解析 ·········································································································· 278 职场点拨——同事之间的互补 ·························································································· 279 第 14 章 错误调试 ··················································································································· 281 14.1 认识错误调试 ·········································································································· 281 14.2 错误类型 ·················································································································· 282 14.2.1 语法错误 ············································································································ 282 14.2.2 运行错误 ············································································································ 286 14.2.3 逻辑错误 ············································································································ 288 14.3 PHP 的开发软件 ······································································································ 288 14.3.1 安装 Zend Studio ································································································· 289 14.3.2 EclipsePHP Studio 2008 ························································································ 294 14.4 疑难问题解析 ·········································································································· 297 职场点拨——程序员保持身心健康的 7 种方式 ······························································ 298 第 15 章 PHP 操作 XML ········································································································· 299 15.1 认识 XML ················································································································ 299 15.2 什么是 XML ············································································································ 300 15.3 一个简单的 XML 文件 ···························································································· 301 15.4 深入认识 XML 文档 ································································································ 301 15.4.1 XML 声明 ·········································································································· 302 15.4.2 XML 标记与元素 ································································································ 303 15.4.3 XML 属性 ·········································································································· 304 15.4.4 XML 注释 ·········································································································· 305 15.4.5 XML 处理指令 ··································································································· 306 15.4.6 XML CDATA 标记 ····························································································· 307
Page
16
目 录 XV 15.5 与 XML 对象相关模型 ···························································································· 308 15.5.1 DTD 文档类型定义 ····························································································· 308 15.5.2 DTD 构建 XML ·································································································· 309 15.5.3 文档对象模型 ····································································································· 310 15.6 PHP 处理 XML ········································································································ 312 15.6.1 打开与关闭 XML ································································································ 312 15.6.2 运用 DOM 读取数据 ··························································································· 313 15.6.3 通过 DOM 操作数据 ··························································································· 314 15.7 疑难问题解析 ·········································································································· 315 职场点拨——保证按时完成任务 ······················································································ 315 第 16 章 Ajax 技术介绍 ·········································································································· 316 16.1 什么是 Ajax ·············································································································· 317 16.1.1 Ajax 适用场合 ···································································································· 317 16.1.2 Ajax 不适用的场合 ····························································································· 318 16.1.3 一个简单的 Ajax 程序 ························································································· 318 16.2 Ajax 的工作原理 ······································································································ 324 16.3 PHP 与 Ajax 的应用································································································· 325 16.3.1 创建 XMLHttpRequest 对象 ·················································································· 325 16.3.2 简单的服务器请求 ······························································································ 326 16.3.3 对 HTML 和 XML 的读取 ···················································································· 327 16.3.4 伪 Ajax 方式 ······································································································· 330 16.4 疑难问题解析 ·········································································································· 332 职场点拨——程序员创业经验谈 ······················································································ 333 温故而知新——第二篇实战范例 ······························································································ 335 范例 1 PHP 对文件的处理 ······························································································ 335 范例 2 PHP 对图形图像的处理 ······················································································ 336 范例 3 PHP 操作 XML ···································································································· 337 范例 4 Ajax 与 PHP ········································································································· 343 第三篇 数据库篇 第 17 章 MySQL 数据库 ········································································································· 346 17.1 认识 MySQL ············································································································ 347 17.2 MySQL 数据库简介 ································································································ 347 17.3 MySQL 的基本操作 ································································································ 348 17.3.1 登录和退出 MySQL 数据库 ················································································· 348 17.3.2 表、字段、记录和键的概念 ················································································· 349 17.3.3 建立和删除数据库 ······························································································ 350 17.3.4 表的建立 ············································································································ 351 17.3.5 查看表的结构 ····································································································· 353
Page
17
PHP 编程新手自学手册 XVI 17.4 对表中记录进行操作 ······························································································· 353 17.4.1 插入数据 ············································································································ 354 17.4.2 更新数据 ············································································································ 355 17.4.3 删除数据 ············································································································ 356 17.4.4 查询数据 ············································································································ 357 17.5 SQL 语句 ·················································································································· 358 17.5.1 对数据库的基础操作 ··························································································· 358 17.5.2 对数据库的高级操作 ··························································································· 361 17.6 使用 phpMyAdmin 对数据库备份和还原 ······························································· 363 17.6.1 对数据库进行备份 ······························································································ 363 17.6.2 对数据库进行还原 ······························································································ 364 17.7 疑难问题解析 ·········································································································· 364 职场点拨——寻找更好的工作 ·························································································· 365 第 18 章 PHP 与 MySQL 的编程 ··························································································· 367 18.1 认识 PHP+MySQL ··································································································· 367 18.2 连接 MySQL 数据库 ······························································································· 368 18.3 简单操作数据库······································································································· 370 18.3.1 选择数据库 ········································································································ 370 18.3.2 简易查询数据库 ································································································· 371 18.3.3 显示查询结果 ····································································································· 372 18.3.4 获取表的全部字段 ······························································································ 373 18.3.5 通过函数 mysql_fetch_array 获取记录 ··································································· 374 18.3.6 通过 mysql_fetch_assoc 获取记录 ·········································································· 374 18.3.7 获取被查询的记录数目 ······················································································· 375 18.4 管理 MySQL 数据库中的数据 ················································································ 377 18.4.1 数据的插入 ········································································································ 377 18.4.2 修改数据库中记录 ······························································································ 378 18.4.3 删除数据库中记录 ······························································································ 379 18.5 疑难问题解析 ·········································································································· 381 职场点拨——处理同事关系 ······························································································ 382 第 19 章 PHP 操作其他数据库 ······························································································ 383 19.1 认识 Access 数据库 ································································································· 383 19.2 新建 Access 数据库 ································································································· 384 19.3 新建 Access 数据库里的表 ······················································································ 387 19.3.1 创建表 ··············································································································· 387 19.3.2 创建表中的记录 ································································································· 390 19.3.3 使用加密方式让 Access 更安全 ············································································ 391 19.4 PHP 访问 Access 数据库 ························································································· 393 19.5 使用 SQL Sever 2000 ······························································································· 393
Page
18
目 录 XVII 19.5.1 创建数据库 ········································································································ 394 19.5.2 创建表 ··············································································································· 396 19.5.3 创建记录 ············································································································ 398 19.5.4 创建存储过程 ····································································································· 399 19.5.5 PHP 连接 SQL Server 数据库 ················································································ 401 19.6 疑难问题解析 ·········································································································· 402 职场点拨——面对失业 ····································································································· 403 第 20 章 模板技术 ··················································································································· 404 20.1 认识 Smarty 模板 ····································································································· 405 20.2 认识 MVC ················································································································ 406 20.2.1 MVC 与模板概念的理解 ······················································································ 406 20.2.2 MVC 的工作方式 ································································································ 406 20.2.3 MVC 能给 PHP 带来什么 ···················································································· 407 20.2.4 使用 MVC 的缺点 ······························································································· 408 20.3 Smarty 模板技术 ······································································································ 408 20.3.1 什么是 Smarty ···································································································· 408 20.3.2 Smarty 有哪些特点 ······························································································ 409 20.3.3 获取 Smarty ········································································································ 409 20.3.4 安装与配置 Smarty ······························································································ 410 20.4 Smarty 的基础知识 ·································································································· 413 20.4.1 什么是 Smarty 的模板文件 ··················································································· 413 20.4.2 注释 ·················································································································· 413 20.4.3 变量 ·················································································································· 414 20.4.4 内置函数 ············································································································ 416 20.5 疑难问题解析 ·········································································································· 421 职场点拨——职场升职的技巧 ·························································································· 421 温故而知新——第三篇实战范例 ······························································································ 423 范例 1 使用 phpMyAdmin 软件创建一个数据库 ··························································· 423 范例 2 使用 phpMyAdmin 备份数据库 ········································································· 427 范例 3 使用 phpMyAdmin 还原数据库 ·········································································· 429 范例 4 PHP 连接 MySQL 语句 ······················································································· 432 范例 5 使用 Access 2007 创建一个数据库 ····································································· 433 范例 6 使用 SQL Sever 2000 创建一个数据库 ······························································· 436 第四篇 实例篇 第 21 章 图片管理系统 ··········································································································· 441 21.1 效果展示 ·················································································································· 441 21.2 网站的架构 ·············································································································· 445 21.3 网站的配置 ·············································································································· 445
Page
19
PHP 编程新手自学手册 XVIII 21.4 网站的皮肤 ·············································································································· 446 21.5 管理图片的功能设计 ······························································································· 450 21.5.1 首页设计 ············································································································ 450 21.5.2 单幅图片的展示 ································································································· 459 21.5.3 后台管理 ············································································································ 472 第 22 章 在线投票系统 ··········································································································· 480 22.1 效果展示 ·················································································································· 480 22.2 购房投票系统模块的实现 ······················································································· 482 22.2.1 系统的布置 ········································································································ 482 22.2.2 投票的首页 ········································································································ 482 22.2.3 投票首页的处理 ································································································· 485 22.3 Flash 投票模块 ········································································································· 488 22.3.1 系统的布置 ········································································································ 489 22.3.2 首页功能 ············································································································ 489 22.3.3 后台处理首页 ····································································································· 490 22.3.4 将数据写入文件 ································································································· 493 22.3.5 对输入的数据进行添加和修改 ············································································· 496 22.3.6 对投票的结果进行处理 ······················································································· 497 22.3.7 对读取数据进行处理 ··························································································· 498 22.4 与数据有关的投票模块 ··························································································· 499 22.4.1 新建数据库 ········································································································ 499 22.4.2 还原数据库 ········································································································ 500 22.4.3 投票模块首页 ····································································································· 501 22.4.4 实现无刷新的功能 ······························································································ 501 22.4.5 对数据库进行处理 ······························································································ 505 第 23 章 在线留言系统 ··········································································································· 507 23.1 效果展示 ·················································································································· 507 23.2 数据库 ······················································································································ 510 23.2.1 设计数据库 ········································································································ 510 23.2.2 设置连接数据库配置 ··························································································· 512 23.3 留言功能的实现······································································································· 512 23.3.1 首页 ·················································································································· 512 23.3.2 首页调进来的几个网页 ······················································································· 515 23.3.3 首页导航菜单的实现 ··························································································· 518 23.3.4 处理留言 ············································································································ 518 23.3.5 后台登录 ············································································································ 524 23.3.6 删除留言 ············································································································ 526 23.3.7 编辑/回复留言 ···································································································· 527
Page
20
目 录 XIX 23.3.8 管理员密码修改 ································································································· 529 23.3.9 对留言本进行设置 ······························································································ 532 23.3.10 对数据库的操作 ································································································ 535 温故而知新——第四篇实战范例 ······························································································ 537 范例 1 让网站统计在线人数 ··························································································· 537 范例 2 文件上传 ·············································································································· 539
The above is a preview of the first 20 pages. Register to read the complete e-book.
AI Reading Assistant
Whole-book reading guide from stratified index samples; jump to passages in the text
AI guide
# PHP编程新手自学手册 — Reading Guide
## 【One-Line Pitch】
A comprehensive, project-driven introduction to PHP development that walks complete beginners from environment setup through database integration and three complete web applications, while weaving in workplace wisdom for aspiring programmers. Ideal for self-taught learners, career-switchers, and students who want a structured path from zero to building real PHP projects.
---
## 【Book Arc】
- **Opening (~0%–10%)**: The book opens with a series preface on programmer career stages, then introduces PHP's value proposition (speed, open-source, cross-platform, database support). Chapter 1 covers PHP's history, features, and environment setup using PHPnow and XAMPP, ending with a first simple program. This stage solves the "where do I start" problem for absolute beginners.
- **Early (~10%–32%)**: Chapters 2–7 build the core language foundation: HTML forms and CSS basics, PHP syntax (variables, operators, expressions), flow control (if/switch, while/for loops, break/continue), functions (including math, date/time, and using the PHP manual), arrays (declaration, traversal, manipulation), and form-based web page processing. Each chapter ends with troubleshooting Q&A and a "workplace tip" section. This stage solves the "how do I write PHP" problem.
- **Middle (~32%–52%)**: The "Improvement" section begins with string operations (trimming, case conversion, search/replace, ASCII functions, splitting), then file operations (reading, writing, directory handling), and image processing (canvas creation, colors, drawing shapes, filling, outputting text including Chinese). These chapters move from language fundamentals to practical utility functions. This stage solves the "how do I handle data and media" problem.
- **Late (~52%–75%)**: The book continues into object-oriented PHP, session management, regular expressions, error debugging, XML handling, and Ajax techniques. These topics prepare readers for modern, structured web development. This stage solves the "how do I build maintainable, interactive applications" problem.
- **Ending (~75%–100%)**: The database section covers MySQL fundamentals, PHP-MySQL integration, working with other databases, and template technologies. The final three chapters are complete projects: an image management system, an online voting system, and an online message board. This stage solves the "how do I build a complete real-world application" problem.
---
## 【Key Takeaways】
- **PHP is a pragmatic, beginner-friendly language** (Opening): It embeds directly into HTML, executes faster than CGI/Perl, supports all major databases and operating systems, and is completely free. This makes it an ideal first web language for newcomers.
- **Environment setup is the first real hurdle** (Opening): The book walks through PHPnow and XAMPP installations step-by-step, recognizing that many beginners struggle before writing a single line of code. Getting a working environment early builds confidence.
- **HTML and CSS are prerequisites for PHP** (Early): Chapter 2 covers forms, text formatting, CSS via Dreamweaver, and basic JavaScript before diving into PHP syntax. This reflects the reality that PHP developers must understand the front-end context their code lives in.
- **Mastering arrays unlocks practical PHP** (Early): Array declaration, traversal, deduplication, merging, reversing, and splitting are covered in depth. Arrays are the workhorse data structure for most PHP web applications, and the book treats them accordingly.
- **String manipulation is a daily skill** (Middle): Trimming, case conversion, search/replace, ASCII handling, and string splitting appear constantly in real projects. The book's systematic coverage here pays off in later project chapters.
- **Image processing extends PHP beyond text** (Middle): Creating canvases, setting colors, drawing and filling shapes, and outputting text (including Chinese) show PHP's capability for dynamic image generation — a common requirement for captchas, charts, and thumbnails.
- **Object-oriented PHP and sessions are essential for modern development** (Late): Moving from procedural to OOP, plus managing user state with sessions, prepares readers for building interactive, multi-user applications rather than simple scripts.
- **Real projects tie everything together** (Ending): The image management, voting, and message board systems demonstrate how to combine forms, databases, sessions, and file handling into complete, deployable applications — the ultimate test of learning.
---
## 【Reading Tips】
- **Skim the "workplace tips" sections** if you're purely technical; they cover career advice, client communication, and team dynamics — valuable for job-seekers but not code-related. Read them once for context, then focus on the technical chapters.
- **Deep-read Chapters 1–7** (the foundation section) carefully. These are the building blocks everything else depends on. Do not skip the array chapter — it's more important than it looks.
- **Practice alongside the book**: The preface explicitly advises coding while reading rather than finishing chapters first. Type out every example, then modify it to test your understanding.
- **Use the troubleshooting sections** ("疑难问题解析") as a quick reference when you get stuck — they address common beginner mistakes that the main text doesn't cover.
- **For the final three project chapters**, try building each project yourself before looking at the book's solution. This is where the learning truly consolidates.
---
## 【Coverage Limits】
This guide is based on table-of-contents excerpts and chapter overviews; it does not cover the detailed code examples, specific function implementations, or the complete project walkthroughs contained in the full book. The database and template chapters (17–20) are only partially visible in the source material.
---
##
Passage locations
Page 4
阶段的程序员在职场中一般是软件高级工程师。 5)资深程序员:技术实力和人脉关系俱佳,一个项目任务能如探囊取物般轻松完成。 但是也对自己的未来充满思索,想寻求待遇更好的职位,会考虑跳槽,也会考虑创业。为了 表述得更加直观,下面通过一幅图来展示程序员的成长历程。 本丛书书目 根据综合考虑分析,本丛书首批书目如下。 C...
View in text
Page 9
······················································ 50 3.2 PHP 的语法结构 ·····················································································...
View in text
Page 11
····················································· 121 6.3 对数组进行简单的操作 ····················································································...
View in text
Page 12
····················································· 185 9.2 文件访问 ··························································································...
View in text
Support Author
0.00
Total Amount (¥)
0
Donation Count
Please enter an amount
Minimum ¥1
You will be redirected to Alipay to complete payment, then return here.
Order created — please complete Alipay payment
{{#payUrl}} Pay with Alipay {{/payUrl}} {{^payUrl}}{{message}}
{{/payUrl}}
Donation failed:{{message}}
Log in to link the donation to your account (anonymous payment also works)
Recommended for You
{{#thumbnailUrl}}
{{/thumbnailUrl}}
{{^thumbnailUrl}}
{{/thumbnailUrl}}
Loading recommended books...
Failed to load, please try again later