为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

PHP 语言精粹

2012-05-29 39页 pdf 2MB 60阅读

用户头像

is_225221

暂无简介

举报
PHP 语言精粹 内 容 简 介 这是一本可以带你迈入 PHP殿堂的书。 PHP 作为当今主流的服务器端开发语言,广泛应用于世界上各种排名比较靠前的网站,如 Facebook、Flickr和Wikipedia等。其广泛的应用与其强大的功能相辅相成,密不可分。 在这本书中,你将看到 PHP中最为精华的特征,包括类型系统、面向对象机制、数据库交互、 安全性保证、内建函数库等。 通过书中极为实用的代码,上述特征的学习和应用将被无缝连接在一起。 作者 Peter B. MacIntyre在软件开发领域已有超过 20年的经验...
PHP 语言精粹
内 容 简 介 这是一本可以带你迈入 PHP殿堂的书。 PHP 作为当今主流的服务器端开发语言,广泛应用于世界上各种排名比较靠前的网站,如 Facebook、Flickr和Wikipedia等。其广泛的应用与其强大的功能相辅相成,密不可分。 在这本书中,你将看到 PHP中最为精华的特征,包括类型系统、面向对象机制、数据库交互、 安全性保证、内建函数库等。 通过书中极为实用的代码,上述特征的学习和应用将被无缝连接在一起。 作者 Peter B. MacIntyre在软件开发领域已有超过 20年的经验,曾是 PHP|Architect杂志的特约 编辑和作者。长期从事 PHP相关的工作使作者对 PHP的发展历程非常了解。这也使本书不单可以让 人了解 PHP当前是什么样子,也可以让人了解到它为什么是现在这个样子。 978-0-596-80437-4 PHP: The Good Parts © 2010 by O’Reilly Media, Inc. Simplified Chinese edition, jointly published by O’Reilly Media, Inc. and Publishing House of Electronics Industry, 2010. Authorized translation of the English edition, 2010 O’Reilly Media, Inc., the owner of all rights to publish and sell the same. All rights reserved including the rights of reproduction in whole or in part in any form. 本书中文简体版专有出版权由 O’Reilly Media, Inc.授予电子工业出版社,未经许可,不得以任何 方式复制或抄袭本书的任何部分。 版权贸易登记号 图字:01-2011-7092 图书在版编目(CIP)数据 PHP语言精粹 /(美)麦因泰(MacIntyre,P.B.)著;刘涛,丁静译. —北京:电子工业出版社,2012.3 书名原文:PHP: The Good Parts ISBN 978-7-121-15385-3 Ⅰ. ①P… Ⅱ. ①麦… ②刘… ③丁… Ⅲ. ①PHP语言-程序设计 Ⅳ. ①TP312 中国版本图书馆 CIP数据核字(2011)第 252567号 责任编辑:徐津平 文字编辑:江 立 封面设计:Karen Montgmery 张 健 印 刷:北京市顺义兴华印刷厂 装 订:三河市双峰印刷装订有限公司 出版发行:电子工业出版社 北京市海淀区万寿路 173信箱 邮编:100036 开 本:720×1000 1/16 印张:11.25 字数:275.2千字 印 次:2012年 3月第 1次印刷 定 价:39.00元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部 联系,联系及邮购电话:(010)88254888。 质量投诉请发邮件至 zlts@phei.com.cn,盗版侵权举报请发邮件至 dbqq@phei.com.cn。 服务热线:(010)88258888。 O’Reilly Media, Inc.介绍 O’Reilly Media通过图书、杂志、在线服务、调查研究和会议等方式传播创新知识。自 1978年开始,O’Reilly一直都是前沿发展的见证者和推动者。超级极客们正在开创着未来, 而我们关注真正重要的技术趋势——通过放大那些“细微的信号”来刺激社会对新科技 的应用。作为技术社区中活跃的参与者,O’Reilly的发展充满了对创新的倡导、创造和 发扬光大。 O’Reilly为软件开发人员带来革命性的“动物书”;创建第一个商业网站(GNN);组 织了影响深远的开放源代码峰会,以至于开源软件运动以此命名;创立了 Make杂志, 从而成为 DIY革命的主要先锋;公司一如既往地通过多种形式缔结信息与人的纽带。 O’Reilly的会议和峰会集聚了众多超级极客和高瞻远瞩的商业领袖,共同描绘出开创新 产业的革命性思想。作为技术人士获取信息的选择,O’Reilly现在还将先锋专家的知识 传递给普通的计算机用户。无论是通过书籍出版,在线服务或者面授课程,每一项O’Reilly 的产品都反映了公司不可动摇的理念——信息是激发创新的力量。 业界评论 “O’Reilly Radar博客有口皆碑。” ——Wired “O’Reilly凭借一系列(真希望当初我也想到了)非凡想法建立了数百万美元的业 务。” ——Business 2.0 “O’Reilly Conference是聚集关键思想领袖的绝对典范。” ——CRN “一本 O’Reilly的书就代表一个有用、有前途、需要学习的主题。” ——Irish Times “Tim是位特立独行的商人,他不光放眼于最长远、最广阔的视野并且切实地按照 Yogi Berra的建议去做了:‘如果你在路上遇到岔路口,走小路(岔路)。’回顾过去 Tim似乎每一次都选择了小路,而且有几次都是一闪即逝的机会,尽管大路也不错。” ——Linux Journal 目录 Table of Contents 序 ................................................................................. ix 第1章 精粹 ....................................................................1 为什么是PHP ...........................................................................................................1 PHP历史摘要 ...................................................................................................1 PHP的地位 .......................................................................................................2 PHP是什么 .......................................................................................................2 PHP有哪些成就 ................................................................................................2 PHP基本设置 ...........................................................................................................3 第2章“实地勘察” .........................................................7 空白、注释和基本语法 ............................................................................................7 变量:数据类型、弱类型和作用域 .........................................................................9 定义常量 ................................................................................................................ 11 表达式 .................................................................................................................... 13 判断、选择(流程控制) ...................................................................................... 14 If...Else... ........................................................................................................ 14 Switch...Case... ............................................................................................... 16 While... ........................................................................................................... 18 For .................................................................................................................. 19 Web页面交互 ......................................................................................................... 20 客户端 Cookie ................................................................................................ 21 vi | 目录 Sessions .......................................................................................................... 22 $_GET ............................................................................................................ 23 $_POST .......................................................................................................... 23 $_REQUEST .................................................................................................. 24 第3章 函数(代码复用) ..............................................27 参数传递 ................................................................................................................ 28 参数默认值 ............................................................................................................ 29 传值和传引用......................................................................................................... 30 include 和 require ................................................................................................... 31 内置函数和用户定义函数 ...................................................................................... 32 第4章 字符串 ...............................................................33 什么是字符串......................................................................................................... 33 你能引用我 ............................................................................................................ 34 字符串函数(精选) ............................................................................................. 36 字符串截取..................................................................................................... 36 管理字符的大小写 ......................................................................................... 37 字符串查找..................................................................................................... 38 字符串编辑..................................................................................................... 40 第5章 数组 ..................................................................43 索引数组 ................................................................................................................ 43 关联数组 ................................................................................................................ 44 多维数组 ................................................................................................................ 45 数组可以动态构建 ................................................................................................. 46 遍历数组 ................................................................................................................ 48 数组函数精选......................................................................................................... 49 数组排序 ........................................................................................................ 49 数学类函数..................................................................................................... 51 其他数组函数 ................................................................................................. 52 目录 | vii 第6章 对象 ..................................................................57 付诸实践 ................................................................................................................ 58 魔术方法 ................................................................................................................ 64 变量 $this ............................................................................................................... 65 对象实战 ................................................................................................................ 65 公开的、保护的和私有的 ...................................................................................... 66 get和set访问器 ....................................................................................................... 67 第7章 数据库交互 ........................................................69 MySQLi 对象接口.................................................................................................. 69 取得数据并显示 ..................................................................................................... 71 PHP数据对象(PDO) .......................................................................................... 72 PDO 预处理对象 .................................................................................................... 74 低成本数据管理 ............................................................................................. 75 SQLite ............................................................................................................ 75 用文件替代数据库 ................................................................................................. 77 第8章 PHP周边 ...........................................................87 电子邮件/短信生成 ................................................................................................ 87 PDF生成 ................................................................................................................ 90 构造方法和基本选项 ...................................................................................... 94 添加页眉和页脚 ............................................................................................. 94 添加图片和链接 ............................................................................................. 96 添加水印 ........................................................................................................ 99 显示动态 PDF 文件和表格 ........................................................................... 101 图形报表生成....................................................................................................... 103 饼图 .............................................................................................................. 103 柱状图 .......................................................................................................... 106 图形验证码................................................................................................... 107 第9章 PHP的安全性 ..................................................109 数据验证 .............................................................................................................. 109 viii | 目录 转义输出 .............................................................................................................. 111 跨站脚本(XXS)和SQL注入 ............................................................................. 113 密码加密安全....................................................................................................... 114 安全技巧 .............................................................................................................. 115 第10章 PHP 5.3 精粹 ................................................117 命名空间 .............................................................................................................. 117 闭包(匿名函数) ............................................................................................... 120 NOWDOC ............................................................................................................ 121 goto 操作符 .......................................................................................................... 122 DateTime 和DateTimeZone类 .............................................................................. 124 额外的5.3特征 ..................................................................................................... 129 第11章 高级优势 .......................................................131 正则表达式 .......................................................................................................... 131 字符串匹配................................................................................................... 131 字符串替换................................................................................................... 133 字符串分割................................................................................................... 133 SimpleXML .......................................................................................................... 134 集成开发环境....................................................................................................... 137 ActiveState的Komodo .................................................................................. 137 用于Eclipse的Zend Studio ............................................................................ 137 NuSphere的PhpED ....................................................................................... 138 主要网站 .............................................................................................................. 138 php.net .......................................................................................................... 138 zend.com ...................................................................................................... 139 devzone.zend.com ......................................................................................... 139 phparch.com ................................................................................................. 141 PHP/Web 会议 ...................................................................................................... 141 附录 缺点 ..................................................................143 索引 ...........................................................................147 序 Foreword 你可能会问,我们为什么还需要一本关于P H P的书呢?现在还有必要指出所谓的那些 “优点”吗?这不是随便的一本书,而且现在也不是PHP生命过程中任何一个特别的时 间。目前PHP正以前所未有的速度被应用,越来越多的人想了解什么是PHP,并且理解 它为何如此受欢迎。由于个人和企业对PHP的应用不断深入,全世界在进行深度介入, 开始大型项目或培训之前,都有必要通过一本书来快速了解这种语言的基本内容。这就 是本书目的所在。不论你是谁——非程序员、Java程序员或是RPG程序员——本书都是 你了解PHP优势的最佳途径。一旦你拥有本书,决定用或不用PHP和是否深入学习它将 变得异常容易。 过去的三年甚至更多时间里,我和把 PHP带到现在这个位置的小组一起工作,他们使 PHP更易在商业中使用。我也曾经目睹 PHP通过多种途经给企业带来巨大利益。一个例 子是,使 1800个汽车经销商和 2400个服务中心(包括超过 42,000名用户)可以自定义 并下单,同时在欧洲 17个国家内向客户提供服务的可注册门户网站。整合 15个不同的 软件应用程序,并使之与后端系统进行通信,在任何一个语言中都是一项挑战,但 PHP 提供了一个快速转换并迅速做出市场响应的黏合性语言解决方案,这使这家企业在很短 的时间内实现其目标,节省的成本也比其他可能的解决方案多。 在我以前担任 Zend技术公司全球服务副总裁时,企业内部的 PHP需求逐步增加,这使 我们开始制定一个全面的服务产品组合,它包括了一个强大的培训课程。开发者也有类 似的需求,他们同时也从这些课程中受益,尽管最近的经济环境并不好,我们看到学生 报名人数或考勤并没有下降。我推荐这本书作为这些课程的一个前期准备。 多年来,彼得·麦金太尔一直在通过他的写作、教学和演讲帮助很多人获得 PHP的好处。 大约三年前当我在 Zend的同事把我介绍给他时,我感到非常愉快。那时,彼得已经为 我们完成了几个网络研讨会,而我的同事强烈地感到他有能力传达有价值的信息,他们 x | 序 认为他会是我们培训团队的生力军。自那时以来,我一直在观察彼得使用多种方式来传 播使用 PHP的便捷之处、其他相关的技术和现有的工具,以及学习它的许多途径。他是 这项技术的热情用户,他非常了解它和所有相关的技术。 在这本书中,彼得提到了一些较大的可见的应用(如 Facebook和雅虎),在我整个参与 PHP的过程中,我见过很多大组织(包括百思买、JC Penney公司、敦豪、福克斯互动、 GE公司和德意志电信)在许多方面使用 PHP,这显示了这个简单语言的力量。想想吧, 就业机会!如果你希望使用 PHP来发展和扩大你的事业,你会有兴趣知道下面的事情。 在与 ODesk公司的交谈中,我了解到,在网站开发的所有需求技能中,PHP是最前面的 一个,并且需求量每小时都在迅速增加。速度甚至超过了 Zend认证工程师。 我认为最令人惊奇的是 IBMi/RPG世界对 PHP的采用。我们惊喜地看到一些非过程语言 的程序员加入到网络发展的新时代,起先也许有一些轻微的纠结,但是一旦他们看到可 以提供给他们的用户(或客户)现代化的接口,像 PHP提供给 IBMi那样的复杂功能, 紧接着必然是急切的渴望, 所以,如果你是一个 IBMi用户或 RPG程序员,买这本书, 你很快就会发现 PHP的魔力。绿色屏幕可以实现现代化,你的应用程序可以继续使用。 如果你是一个强大的 Java程序员而 PHP处在你的“下风”呢?对我们所有 PHP的信徒 而言,这始终是一个有趣的讨论!我听到的一些搞笑台词:“PHP不是 Java”和“Java 死了”,然后另一个说法是“PHP是给业余爱好者使用的”。我们所要做的是通过 Zend 框架、Magento或 Drupal的下载量上升速度来认识 PHP中被简单性所掩饰掉的威力和 潜力。PHP无法替代 Java,同时 Java也无法取代 PHP。这两种语言共存于最成功和最 前沿的 IT团队中。需要注意的一点是:请仔细阅读读本书——有许多使用 PHP的方式, 这远比 Java程序员基于 Java所假设的要多,这本书将引导你如何最好地利用 PHP。 今天,世界上有超过三分之一的网站是用 PHP编写的,而且这个数字还在增长。PHP 语言本身已发展到拥有完整的开发基础设施,能使复杂的应用程序应用于商业的程 度;Zend框架、Magento和 Drupal都是这个进化过程中很成功的例子。市场分析公司 Gartner最近发表了一份,预测全球的 PHP开发人员将会在 2013年增长到 500万(在 2007年和 2009年分别为 300万和 400万)。他们提供的一个短期预测表明,PHP将一 直是一个被广泛采用的网页开发技术。 是时候让更多的人,也让你来明白这个看似嘈杂的世界背后究竟都有什么了。因此,我 邀请你一路向前,阅读、欣赏、加入不断增长的 PHP用户大家庭。你绝不会再回到从前! ——Zend公司全球服务部前副总裁 Susie Sedlacek 前言 Preface 本书约定 下面是本书中使用的体例约定: 斜体(Italic) 表示新术语、URL、E-mail地址、文件名及文件扩展名。 等宽字体(Constant width) 程序清单,以及段落中引用的程序元素,如变量或函数的名称、数据库、数据类型、 环境变量、语句和关键字。 等宽加粗字体(Constant width bold) 显示命令或其他应该由用户输入的文本。 等宽斜体(Constant width italic) 显示应该替换为用户提供的值或由上下文决定的值的文本。 这个图标表示提示、建议、或一般说明。 这个图标表示警告或注意。 xii | 前言 使用代码示例 本书可以帮助你完成工作。通常在程序和文档中使用本书的代码不必联系我们获得许可, 除非你要复制代码的重要部分。例如,使用本书几大块代码编写程序不需要许可,而销 售或分销 O’Reilly随书附带光盘上的例子则需要许可;引用本书及其示例代码以回答问 题不需要许可,而将本书大量的示例代码附加到你的产品文档中则需要许可。 我们感谢但不要求注明出处。出处的格式一般包括标题、作者、出版商和 ISBN。例如: “PHP:由彼得 B.麦金太尔完成。© 2010彼得 B.麦金太尔,978-0-596-80437-4”。 如果你觉得示例代码的使用不合理或不符合以上的许可权限,请随时联系我们: permissions@oreilly.com 如何联系我们 本书中的每个例子都已经在不同的平台上测试通过,生产过程中的每个步骤信息也都已 经过证实。但是,错误和疏漏在所难免。如果你发现任何细节问题,或对以后版本的改 进有什么建议,欢迎与我们联系,我们将十分感激。你可以通过以下方式联系作者和编辑: 美国: O’Reilly Media, Inc. 1005 Gravenstein Highway North Sebastopol, CA 95472 中国: 北京市西城区西直门南大街 2号成铭大厦 C座 807室(100035) 奥莱利技术咨询(北京)有限公司 以下网站列出了本书的勘误表、示例和任何附加信息,网址为:http://oreilly.com/ catalog/9780596804374 如果想询问技术问题,或者发表有关本书的评论,请发送邮件(并引用本书的 ISBN号 码 9780596804374)到: bookquestions@oreilly.com 如果想了解我们的书籍、会议、资源中心以及 O’Reilly Network的更多信息,请访问网站: 前言 | xiii http://www.oreilly.com.cn http://www.oreilly.com Safari® Books Online Safari Books Online是一个按需出版数字图书馆,让你轻松搜索超过 7500 种技术及有创意的参考书籍和视频,快速找到需要的。 通过订阅,你可以从我们的在线图书馆浏览任何网页,观看任何视频;可以在手机和移 动设备上阅读书籍;在产品可印刷之前获取新标题,独家访问创作中的手稿并给作者提 交反馈;复制并粘贴代码样本,组织你的收藏夹,下载章节,将重点部分加入书签,创 建笔记,打印页面,并从许多其他省时的功能中受益。 O’Reilly Media已经将本书英文版上传至 Safari Books Online服务。想要得到本书(英 文版)的电子版,以及 O’Reilly和其他出版商类似主题的电子书的完全访问权,请在这 里免费注册: http://my.safaribooksonline.com 致谢 首先,我想感谢所有那些在 O’Reilly工作的、致力于本书却默默无闻的人们。我甚至不 知道你是谁,但感谢你的所有工作,以帮助完成这个项目(并做得很出色),最终使它上架。 编辑、图形、布局、规划、市场营销和所有工作,我很感激你们的努力。 朱莉 ·斯蒂尔是我在 O’Reilly的编辑,在这个项目上总是显示出极大的耐心和敬业精神, 感谢你给我这个机会,和从始至终的陪伴。我想现在你是我 IT出版界的好朋友之一。我 希望有一天,可以亲自见到你! 非常感谢我的技术编辑。Charles Tassell、Brian Danchilla和 Peter Lavin,感谢你们敏锐 的目光和彻底测试我很多的示例代码。你们伟大的思想使这本书变得更好。WezFurlong 和 Derick Rethans也贡献了一些技术帮助,感谢你们的协助。 最后,Susie Sedlacek是 Zend公司全球服务前副总裁,感谢你愿意在一起介绍这本书。 我十分高兴能有你的介绍,使读者能从全球的角度了解 PHP在世界范围内的广泛使用和 影响。我很高兴听到你和你丈夫已经购买了在加州的葡萄园,我希望你真正享受这一新 的尝试! 1 第1章 精粹 The Good Parts 酝酿这本书有相当长一段时间了。这么多年来,我一直在用 PHP,因为喜欢它易于上手、 灵活和功能强大而投入越来越多的感情。在我 20多年的职业生涯里,PHP是我用过的所有 语言中最喜欢和最拿手的。在此期间,PHP也从一个小型函数集变成一个体积庞大、模块 众多和扩展丰富的工具。有些程序员可能一开始会淹没在它浩如烟海的函数之中,但我希 望通过这本书能帮助你真正了解 PHP的行之有效。这本书并不厚,你将看到 PHP开发中最 精华的部分。当看到本书最后一页时,你会更进一步理解在Web开发领域里PHP是多么强大。 为什么是PHP Why PHP? 市场上有那么多编程的书——包括大量关于 PHP的书——你甚至都不知道也许正有本 书即将完成。PHP是被广泛使用的语言,并且近几年在企业应用方面也有较大的增长。 Web应用如 Facebook注 1、Flickr注 2、雅虎的部分网站、维基百科的核心实现,以及网站内 容管理系统如 Drupal、Joomla和WordPress也都是采用 PHP构建的。IBM还展示了很 多自身技术与 PHP相结合的有趣实例。基于这些原因,帮助技术业界的初中级程序员熟 悉这个语言中最精华的部分是件有意义的事情。 PHP历史摘要 A Brief History of PHP 我们简单地回顾一下 PHP的发展历史。PHP(Personal Home Page)由 Rasmus Lerdorf 在 1995年发布,最早的名字叫个人主页工具(PHP Tools)。从推出到现在,一直是作为 注 1 :社交网站,部分地区访问可能有障碍。——译者注 注 2 :图片分享网站。——译者注 1 2 | 第1章 精粹 开源软件出现。数据库操作集成于 1996的 2.0版,之后其发展和变化可谓日新月异、翻 天覆地。它成为当今世界上使用率最高的网站开发语言。在本书撰写之际,最新版本是 2009年 6月 30日发布的 5.3版。 PHP的地位 PHP’s Place in the World PHP是一种使用最广泛的编程语言。想想看,在这么短的时间内有如此显著的成长,仅仅15 年左右,它已经成为网站开发世界中的一个主要参与者。在最近几年,许多PHP社区的人都 在争论它能否适用于企业开发:可信任否?可否用于大项目?够强壮否?鉴于近期也有如 IBM和微软这样的公司在关注PHP,而且事实上,它可以构建大型网站(如Facebook和雅虎 等),有人认为它也可用于企业开发。这些争论会随着时间的逝去而最终尘埃落定。对于 最近发布的5.3版本,你可以十拿九稳地说,行或不行,将很快见分晓。 PHP是什么 What Is PHP? 那么,什么是 PHP呢?它是一种脚本语言,主要用于服务器端开发,可以被用来动态 生成超文本标记语言(HTML)内容。 PHP和 Web服务器集成在一起,较常见的是 Apache或 IIS 注 3,一旦 PHP完成 HTML的生成,将交由Web服务负责向发起请求的客户 端返回结果页面。 我说“主要用于”服务器端,是指你也可以将其用于其他领域,包括命令行、桌面开发 和客户端服务环境,我只是举几个例子。但它最常用于Web服务器环境。 PHP开发人员通常会将 PHP和许多不同的数据库操作工具集成在一起,例如 MySQL、 SQLite、PostgreSQL、DB2、MS SQL、Oracle等。它们使动态内容成为可能。实际上, 最终结果页面还是一个静态 HTML文件,但它是在程序运行中产生的,因此是动态的。 其实,你完全可以认为,由于内容是从数据库或其他来源读取并产生的,PHP实际上是 可以产生动态内容的。 PHP有哪些成就 What Has Been Accomplished with PHP? 说了这么多 PHP的优势,如果没有论据来证明,那显然没说服力。所以,让我们展现几 注 3 :这是两种较流行的 Web 服务器软件。——译者注 2 | 3 个用 PHP搭建和实现的实例吧!世界排名较靠前的网站中有一些是部分基于 PHP构建 的
/
本文档为【PHP 语言精粹】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索