《细说PHP》第四版 样章 第二章 PHP的应用与发展 1

《细说PHP》第四版 样章 第二章 PHP的应用与发展 1

学习任何编程语言之前,先了解一下它的应用与发展是很有必要的。从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)、日历转换、翻译等。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券