学习任何编程措辞之前,先理解一下它的运用与发展是很有必要的。从Web开拓的历史看来,PHP、Python和Ruby险些是同时涌现的,都是十分有特点、精良的开源措辞,但PHP却得到了比Python和Ruby多得多的关注度。现在越来越多的新公司或者新项目,新的开拓类型都在利用PHP,这使得PHP干系社区越来越生动,而这又反过来影响到很多项目或公司的选择,形成一个良性的循环。就目前的情形来看,PHP是海内大部分Web项目的首选,很多公司的团队或项目逐渐从其他措辞转到了PHP。PHP开拓本钱低,周期短,后期掩护用度低,开源产品丰富,这些都是Python和Ruby无法比拟的。本章全面先容了PHP的发展、行业的运用、突出的上风,以及一些学习PHP的方法和建议。学习一门技能,就先从理解一门措辞开始吧!
2.1 PHP是什么
我们运用的所有软件,都是由打算机措辞编写的。目前盛行的编程措辞有很多,例如PHP、Java、Python、JavaScript、C/C++和Go措辞等,全天下有600多种编程措辞,PHP则是浩瀚打算机编程措辞中的一种,用于网络开拓,尤实在用于Web开拓领域,紧张目标是快速编写动态网页。PHP的语法接管了C措辞、Java和Perl的特点,利于学习,利用广泛,是一种通用的开源脚本措辞。用PHP做出的动态页面与其他的编程措辞比较,PHP是将程序嵌入到HTML(标准通用标记措辞下的一个运用)文档中去实行,实行效率比完备天生HTML标记的其他编程措辞要高许多。PHP能运行在Windows、Linux等绝大多数操作系统环境中,常与开源免费的Web做事器(Apache或Nginx)和数据库(Mysql及Redis)合营利用,用于Linux平台上(简称LAMP/LNMP),具有最高的性价比,号称“Web架构黄金组合”,形成了现在非盛行的Web开拓技能。
2.1.1 从认识PHP开始
我们在第1章中重点先容了Web开拓构件,PHP是个中最主要的构件,是做事器端嵌入到HTML中的脚本措辞。在PHP的定义中共用到了3个形容词:做事器真个措辞、嵌入到HTML中的措辞和脚本措辞。分别先容如下。
1.做事器真个措辞
开拓Web运用这种B/S构造的软件,不仅须要有编写客户端界面的措辞,还要有编写做事器端业务流程的措辞。例如,编写界面利用的HTML、CSS和JavaScript都是在用户发出要求后,做事器再将代码发送到客户端,并在客户端打算机的浏览器中解析实行的程序。而PHP则是做事器端运行的措辞,只能在做事器端运行,而不会传到客户端。在PHP代码中如果有对文件类的操作,可以都是操作做事器上的文件,PHP获取的韶光也只能是做事器上的韶光。只有当用户要求时才开始运行,并且有多少要求,PHP程序就会在做事器中运行多少次。PHP根据不同用户的不同要求,完成在做事器中的业务操作,并将结果返回给用户。
2.嵌入到HTML中的措辞
在HTML代码中可以通过一些分外的标识符号将各式各样的措辞嵌入进来。例如,前面章节中先容的CSS、JavaScript都可以嵌入到HTML中,合营HTML一起完成一些HTML完成不了的功能,或者说是对HTML措辞的扩展,而它们都是由浏览器解析的。PHP程序虽然也是通过分外的标识符号嵌入到HTML代码中的,但和CSS或JavaScript不同的是,在HTML中嵌入的PHP代码须要在做事器中先运行完成。如果实行后有输出,则输出的结果字符串会嵌入到原来的PHP代码处,再和HTML代码一起相应给客户端浏览器去解析。
3.脚本措辞
脚本措辞,又称动态措辞,我们在第1章中已经阐述过了。脚本常日以文本(如ASCII)保存,只在被调用时进行阐明或编译。PHP程序便是以文本格式保存在做事器真个,在要求时才由Web做事器中安装的PHP运用模块解析,并从上到下一步步地实行程序。
2.1.2 PHP都能做什么
PHP能做很多事,但PHP紧张是在Web开拓中用于做事器真个脚本程序。PHP须要安装PHP运用程序做事器去阐明实行,是用来帮忙Web做事器事情的编程措辞,也可以说是对Web做事器功能的扩展,并外挂在Web做事器上一起事情。用户如果通过浏览器访问Web做事器须要得到动态相应的结果,Web做事器就要委托PHP脚本编程措辞来完成了。本书中可以用PHP来完成以下事情,但PHP的功能远不局限于此,如图2-1所示。
图2-1 PHP在Web中的功能展示
1.网络表单数据
表单(Form)是网络编程中最常用的数据输入界面。表单常日可以在提交时利用GET或POST方法将数据发送给PHP程序脚本。在PHP脚本中,可以以PHP变量的形式访问每一个表单域在PHP脚本中的利用。根据PHP版本和设置的不同,通过变量可以有3种方法来访问表单数据。以是在PHP中,得到用户输入的详细数据是非常大略的。
2.天生动态网页
PHP脚本程序和客户真个JavaScript脚本程序不同的是,PHP代码是运行在做事器真个。PHP脚本程序可以根据用户在客户真个不同输入要求,在做事器端运行该脚本后,动态输出用户要求的内容。这样客户端就能吸收到想得到的结果,但无法得知其背后的代码是如何运作的。乃至可以将Web做事器设置成让PHP来处理所有的HTML文件,这样一来,用户就无法得知做事器端到底做了什么。
3.字符串处理
在编写程序代码或是进行文本处理时,常常须要操作字符串,以是字符串处理一贯是程序员利用最多的技能之一。PHP是把字符串作为一种基本的数据类型来处理的。在PHP中供应了丰富的字符串处理函数,并利用强大的正则表达式来对字符串或文本进行搜索、查找、匹配、更换等操作。
4.动态输出图像
利用PHP并不局限于输出HTML文本。PHP通过利用GD扩展库还能用来动态输出图像,例如笔墨按钮、验证码、数据统计图等,还可以轻松地编辑图像,例如处理缩略图、为图片添加水印等,具有强大的图像处理功能。
5.做事器端文件系统操作
要想让数据可以长期保留,可以利用数据库或是文件系统来存取信息。在某些存取数据相对大略的运用中,或是一些特定的运用中,没有必要利用数据库,就可以采取文件操作。PHP可以利用文件系统函数任意操作做事器中的目录或文件,包括目录或文件的打开、编辑、复制、创建、删除,以及文件属性等操作。
6.编写数据库支持的网页
PHP最强大、最显著的特性之一是它支持很大范围的数据库。用户会创造利用PHP编写数据库支持的网页大略得难以置信。目前,PHP可以连接任何支持天下标准的数据库。
7.会话跟踪掌握
我们访问Web做事器常日是利用HTTP协议完成的,但它是一个无状态的协议,没有一个内建机制来掩护两个事务之间的状态。也便是说当一个用户在要求一个页面后再要求另一个页面时,HTTP将无法见告我们这两个要求是来自同一个用户。以是可以在PHP中利用会话掌握功能在网站中跟踪一个用户,这样就可以很随意马虎地做到用户登录的支持,并根据某个用户的授权级别和个人喜好显示相应的内容,也可以根据会话掌握记录该用户的行为。
8.处理XML文件
PHP具有极其有效的文本处理特性,支持从POSIX扩展或者Perl正则表达式到XML文档解析。为理解析和访问XML文档,PHP 4支持SAX和DOM标准,也可以利用XSLT扩展库来转换XML文档。PHP 5基于强健的libxm2标准化了所有的XML扩展,并添加了SimpleXML和XMLReader支持,扩展了其在XML方面的功能。
9.支持利用大量的网络协议
PHP还支持利用诸如LDAP、IMAP、SNMP、NNTP、POP3、HTTP、COM(Windows环境)等不计其数的协议的做事。还可以开放原始网络端口,使得任何其他的协议能够协同事情。PHP支持和所有Web开拓措辞之间的WDDX繁芜数据交流。关于相互连接,PHP已经支持了对Java工具的即时连接,并且可以将它们自由地用作PHP工具,乃至可以用CORBA扩展库来访问远程工具。
10.做事器真个其他干系操作
如果将PHP用于电子商务领域,会创造其Cybercash支付、CyberMUT、VeriSign Payflow Pro及MCVE函数对付在线交易程序来说是非常有用的。其余,还有很多其他有趣的扩展库,例如mnoGoSearch搜索引擎函数、IRC网关函数、多种压缩工具(gzip、bz2)、日历转换、翻译等。