如何把自己写的php源代码变成程序,就像windows下的计算器那样
PHP是编程语言和应用程序服务器的结合。PHP和其它的编程语言类似,使用变量存储临时数值,使用操作符处理变量。PHP的真正价值在于它是一个应用程序服务器。
当谈到应用程序服务器的时候,我是指一个把几个不同的技术组合为一个完整的套件的程序。这些技术包括:
一个强壮的编程语言。
存取数据库中存储的数据。
支持 Internet协议,尤其是电子邮件和HTTP协议。
注意:应用程序服务器有许多其它的特性,这里只列出了最基本的特性。
由于提供了这些多种不同技术的前端接口,PHP可以使工作变的很容易。
本章的其它部分讲述了有关PHP的许多繁杂资料,以及它在应用软件开发中起到的作用。
11 起源
PHP是由Rasums Lerdorf创建的,它开始是一个简单的用Perl语言编写的程序,用来记录Rasums Lerdorf自己在线简历的访问者。以后它又被用C语言重新写过,范围扩大到访问数据库。在这期间,有许多人向Rasums Lerdorf要此程序的拷贝,以便自己使用。Rasums Lerdorf为此写了一些介绍此程序的文档,并发布PHP v10。以后,越来越多的人开始使用PHP,并强烈要求增加一些其他的特性,如循环语句和数组变量等。到这时,其他的一些程序员也开始参与PHP源码的编写(主要有Zeev Suraki和Andi Gutmans),很明显,此时的PHP为了以后的发展,必须重新编写。因此,PHP v30就出现了。
12 特性
PHP的特性包括:
开放源码 -- 所有的PHP源码都可以得到。事实上,所有的源码都包含在随书附带的光盘中。
没有运行费用 -- PHP是免费的。
基于服务器端 -- 由于PHP是在Web服务器端运行的,PHP程序可以很大、很复杂而不会降低客户端的运行速度。
跨平台 -- 虽然本书是以Linux为重点介绍的,但PHP程序可以运行在UNIX,Linux,或者Windows操作系统下。
嵌入HTML -- 因为PHP语言可以嵌入到HTML内部,所以PHP很容易学习。
简单的语言 -- 和Java和C++不同,PHP语言坚持以基本语言为基础,然而它的功能也强大到足以支持任何类型的Web站点。
效率高 -- 和其它的解释性语言相比,PHP系统消耗较少的系统资源。当PHP作为Apache Web服务器的一部分时,运行代码不需要调外部二进制程序,服务器解释脚本不需要承担任何额外负担。
分析XML -- 用户可以组建一个可以读取XML信息的PHP版本。
数据库模块 -- 用户可以使用PHP存取Oracle、Sybase、MS SQL、Adabase D、MySQL、mSQL、PostgreSQL、dBase、FilePro、Unix dbm、Informix/Illustra等类型的数据库,以及任何支持ODBC标准的数据库。
文件存取--PHP有许多支持文件存取函数。
文本处理--PHP有许多函数处理字符串,其中包括模式匹配的能力。
复杂的变量--PHP支持标量、数组、关联数组等变量,这给用户提供了以支持其它的高级数据结构的坚实基础。
图象处理--用户可以使用PHP动态的创建图象。
更多的其它功能!
13 PHP需要花费多少钱?
PHP是免费的。所有的源码、文档都可以免费的复制、编译、打印和分发。用户的任何一个用PHP编写的程序都属于用户自己,可以按照自己的意愿进行处理,而不需要付任何版税。就PHP本身而言,用户可以无限制地发布自己编写的程序。
然而,有着很充分的理由,PHP并不是彻底的“公共领域”代码。如果PHP源码是完全的公共领域代码,很可能就有人对PHP的源码做很小的修改,然后编译并出售--换一句话说,从它的创作者中脱离出来。但从另一方面说,如果不公布源码,很难使想使用它的用户感到放心。
GNU通用公共许可是一种发布免费软件的方法,它可以避免其他人占有你的劳动成果。在符合GNU许可的条件下,源码可以自由地发布,并且任何一个人都可以使用,但是任何来源于此代码的程序必须以同样种类的许可方式发布。换句话说,如果用户从任何GNU许可下的源码中得到代码而编写自己的程序,用户必须给任何想得到源码的人共布自己的源码。
14 PHP语言可以嵌入HTML中
当使用者使用经典程序设计语言(如C或Pascal)编程时,所有的代码必须编译成一个可执行的文件,然后该可执行文件在运行时,为远程的Web浏览器而产生可显示的HTML标记。但另一方面,PHP并不需要编译(至少不编译成可执行文件)。使用者可以把自己的代码混合到HTML中。例如,下面的代码将显示“Hello,world!”,PHP代码在下面以黑体字显示。
<HTML>
<HEAD><TITLE>Test</TITLE></HEAD>
<BODY>
<PHP $string = 'world!'; >
<H1>Hello,<php echo $string ></H1>
</BODY>
</HTML>
PHP应用程序服务器(本书的主要写作目的)是紧密集成到Apache Web服务器中的,可以在一个程序内同时调用它们两个。当Web浏览器请求PHP Web页面的时候,Web服务器的PHP部分将被调用进行解释。Web服务器在请求的Web页中寻找<PHP >标记,并按要求执行这些PHP代码。
由PHP代码生成的输出将替代<PHP >标记。例如,当PHP代码运行后,以前的Web页面将变成如下所示的内容:
<HTML>
<HEAD><TITLE>Test</TITLE></HEAD>
<BODY>
<H1>Hello,world!</H1>
</BODY>
</HTML>
注意,所有的PHP代码都消失了,仅仅留下了HTML语句。而由PHP代码生成的HTML语句在上例中以黑体的形式显示。
15 PHP语言是在Web服务器端运行
当开发互联网应用程序时,很重要的一点是要清楚应用程序是在哪一端运行的。PHP总是运行在服务器端。不要嘲笑对这一点的强调。在以后考虑对应用程序某些特性进行规划时,有的人可能就会在应用程序在哪里运行的这个问题上搞错,不要让自己也成为这些人中的一个。
由于Java applets,ActiveX,或javascript 都是运行在客户端的Web浏览器中的,因此PHP不能直接和它们进行比较。然而可以很容易的将这些语言与PHP相结合在一起,使用PHP可以很方便地生成所需要的任何HTML代码,当然也就能激活Java applets和ActiveX控件,还可以动态生成javascript语句。当对互联网应用程序开发还很陌生的时候,这也许没有什么意义,但是在读完这本书后,这一切就会变得十分清晰的了。
16 PHP无处不在
无处不在是常使用的充满激情的词语,到1999年7月,将有60万左右的Web站点使用PHP,1999年夏天有关Linux和开放代码运动的大发展很可能使PHP团体有突破性发展。可以在站点上看到它的发展趋势图表。
此外,PHP邮件列表每天能收到大约80个电子邮件,每个月能收到大约2500个电子邮件,这说明PHP是一个非常活跃的开发团体。使用PHP的商业公司有以下几个,Mitsubishi Motors、Volvo、Red Hat Software、ETrade、First USA Bank、the San Francisco Giants和San Diego Zoo等等。
17 PHP和C或Java相似吗?
PHP程序和C程序有略微相似的地方,这是由于PHP来源于C、Perl和Java。一些对C语言来讲比较麻烦的方面(如处理字符串的技术),由于采用了和Perl相近的技术,在PHP中就不再是麻烦了。PHP中也不包括Java中的一些面向对象特性。
PHP能很好地处理某些低级的任务,如果代码需要运行的特别快,可以很方便的使用C为PHP程序编写模块。
18 PHP比ColdFusion、Active Server Page或Java Server Page更好吗?
以流行的商议方式,我总是回答,“可以是,也可以不是”。
回答是,是由于它的费用(免费)以及可以通过邮件列表、IRC而在世界范围内有广泛的支持网络。同时PHP还在不断地发展着,如果想要一个PHP现在没有的特性时,请等待几个月,就有人很快为PHP编程而加上此种特性。
回答不是,是由于商业软件有比PHP更多的特性。例如,Allaire's ColdFusion有一个已证实可靠的搜索引擎组件。微软的Active Server Page技术提供了与Outlook、电子邮件和工作组程序相结合的能力。Java Server Page让使用者可以使用互联网上的大量开放源码模块。
19 总结
对于遍及互联网上的PHP,本章仅仅简要提到了它的一些特性,本章也介绍了当设计互联网应用程序时,PHP为什么是最好的编程工具之一的原因。
看不到的。
关于开放源代码的定义(17版)
开放源代码并不仅仅意味着对源代码的访问权。开放源代码软件的发布条款必须满足以下条件:
1.自由地再发布
如果被发布的软件是由不同来源的程序组成的,许可证不得限制任何当事人或组织(party)销售或赠送作为被发布软件成分之一的开放源码软件。
许可证不得从此项销售中索取使用费或其它任何费用。(理由)
2.源代码程序必须包括源代码,必须允许以源代码方式发布、还必须允许以编译后的形式发布。如果产品的某个部分没有与源代码一同发布,那么必须提供通行的、不需要支付合理范围之外的任何费用的手段以获得源代码---从网络上免费下载是一种可取的方式。源代码必须是程序员对其进行修改的最佳形式。故意地使源代码变得含混晦涩是不允许的。也不允许给出预处理器或翻译器处理的中间结果。(理由)
3.派生作品
许可证必须允许修改软件和派生软件,并且必须允许它们按照原软件的许可证的条款进行发布。(理由)
4.作者的源代码的完整性只有在许可证允许与源代码一同发布"补丁文件"(该"补丁文件"以在创建时对程序进行修改为目的)时,许可证才能限制对修改形式的源代码的发布。许可证必须明确地允许发布由修改后的源代码生成的程序。许可证可以要求派生的作品采用不同的名称或不同的版本号以区别于原来的软件。(理由)
5.不得歧视任何个人或团体
许可证不得歧视任何个人或者由多人组成的团体。(理由)
6.不得歧视任何应用领域(fieldsofendeavor)许可证不得限制任何人把程序应用于任何领域。例如,不得规定程序不能应用于商业领域或基因研究领域。(理由)
7.许可证的发布与程序有关的权利必须适用于该程序的任何使用者,并且程序的使用者也不需要为了使用该程序而获得其它许可证的许可。(理由)
8.许可证不能针对于一个产品与程序有关的权利不能由该程序是否作为某个软件产品的一部分来决定。
如果程序从那个发布中被抽出来,并且按照程序的许可证的条款进行使用和发布,那么得到该程序的当事人或组织将获得与得到原程序的使用者相同的权利。(理由)
9.许可证不能影响其它软件许可证不得向与采用它的软件一同发布的其它软件提出任何限制。例如,
许可证不能坚持要求在同一媒体上发布的其它程序都是开放源代码软件。(理由)
1 现象描述
部署一个PHP系统的时候,访问php,在浏览器显示php源码。使用
<php
phpinfo();
>
测试文件,则正确显示。
2原因分析
php源码中采用了< >这种短标签格式,而采用的php版本默认不支持这种短格式。
3解决方法
修改phpini
short_open_tag = On #打开对短标签的支持
4思考
(1)作为开发者,新开发php时,尽可能避免使用<>这种短格式;
(2)作为运维者,要时刻提醒自己显示源码的问题,避免源码泄露。
PHP是后端语言,前端是无法查看的,前端看到的是最终运算之后的结果,PHP源代码是无法查看的。如果能直接查看PHP源代码那还得了,如果你是单纯想看看网页代码,那就在浏览器右键-查看源码就可以看见。
PHP和ASP都不是同一种语言
什么是ASP语言?
Active server pags ( 动态服务器主页, 简称ASP ), 内含于 Internet Information
Server(IIS)当中,提供一个服务器端 (server-side) 的scripting 环境,让你产生和执行动态, 交互式, 高效率的站点服务器的应用程序。你不必担心浏览器是否能执行你设计出来的Active Server Pages,你的站点服务器会自动将Active Server Pages的程序码,解释为标准HTML格式的住页内容,在送到用户端的浏览器上显示出来。用户端只要使用常规可执行HTML码的浏览器,
即可浏览Active Server Pages所设计的主页内容。
什么是PHP语言
PHP,一个嵌套的缩写名称,是英文“超级文本预处理语言”(PHP:Hypertext Preprocessor)的缩写。PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的“嵌入HTML文档的脚本语言”,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;与同样是嵌入HTML文档的脚本语言JavaScript相比,PHP在服务器端执行,成分利用了服务器的性能;PHP执行引擎还会将用户经常访问的PHP程序驻留在内存中,其他用户在一次访问这个程序时就不需要诚信编译程序了,只要直接执行内存中的代码就可以了,这也是PHP高效率的体现之一。PHP具有非常强大的功能,所有的CGI或者JavaScript的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。
PHP 最初是1994年Rasmus Lerdorf创建的,刚刚开始只是一个简单的用Perl语言编写的程序,用来统计他自己网站的访问者。后来又用C语言重新编写,包括可以访问数据库。在1995年以Personal Home Page Tools (PHP Tools) 开始对外发表第一个版本,Lerdorf写了一些介绍此程序的文档,并且发布了PHP10。在这早期的版本中,提供了访客留言本、访客计数器等简单的功能。以后越来越多的网站使用了PHP,别且强烈要且增加一些特性,比如循环语句和数组变量等等,在新的成员加入开发行列之后,在1995年中,PHP20发布了。第二版定名为PHP/FI(Form Interpreter)。PHP/FI加入了对mSQL的支持,从此建立了PHP在动态网页开发上的地位。到了1996年底,有15000个网站使用 PHP/FI;时间到了1997年中,使用PHP/FI的网站数字超过五万个。而在1997年中,开始了第三版的开发计划,开发小组加入了 Zeev Suraski 及 Andi Gutmans,而第三版就定名为PHP3。2000年,PHP40又问世了,其中增加了许多新的特性。
PHP的特性包括:
开放的源代码:所有的PHP源代码事实上都可以得到。
PHP是免费的。
基于服务器端:由于PHP是运行在服务器端的,即使再多的用户,再复杂的程序也不会影响运行的速度。
跨平台:PHP可以运行在UNIX、LINUX、WINDOWS下。
嵌入HTML:因为PHP可以嵌入HTML语言,所以学习起来并不困难。
简单的语言:PHP坚持脚本语言为主,与Java以C++不同。
效率高:PHP消耗相当少的系统资源。
图像处理:用PHP动态创建图像
PHP 3与PHP 4的比较
PHP3跟Apache服务器紧密结合的特性;加上它不断的更新及加入新的功能;而且几乎支持所有主流与非主流数据库;再以它能高速的执行效率,使得PHP在1999年中的使用站点已经超过了150000万。加上它的源代码完全公开,在 Open Source意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新的活力,使得PHP无论在UNIX、LINUX或是Windows的平台上都可以有更多新的功能。它提供丰富的函数,使得在程序设计方面有着更好的支持。
PHP40整个脚本程序的核心大幅更动,让程序的执行速度,满足更快的要求。在最佳化之后的效率,已较传统CGI或者ASP等程序有更好的表现。而且还有更强的新功能、更丰富的函数库。无论您接不接受,PHP 都将在 Web CGI 的领域上,掀起巅覆性的革命。对于一位专业的Web Master 而言,它将也是必修课程之一。
PHP 40是更有效的,更可靠的动态Web页开发工具,在大多数情况运行比 PHP 30要快,其脚本描述更强大并且更复杂, 最显著的特征是速率比的增加。PHP40这些优异的性能是PHP 脚本引擎重新设计产生的结果:引擎由 AndiGutmans 和 Zeev Suraski从底层全面重写。PHP40 脚本引擎 ——Zend 引擎,使用了一种更有效的“编译——执行”方式, 而不是PHP 30 采用的“执行 ——当解析时”模型。
PHP4在30版的基础上增加或增强了许多有用的特征,主要如下:
(1)别名:在PHP4中,可以利用引用为变量赋值,这给编程带来了很大的灵活性。
(2)扩充了API 模块:PHP 40 为扩展的 API 模块的提供了扩展PHP接口模块, 它比旧的 API 版本显著地快。 PHP 模块已有的及最常用的接口多数被转换到使用这个扩展的接口。
(3)自动资源释放:PHP4增加了引用计数功能,这种新技术的引入使PHP4具有了自动内存管理功能,减轻了开发人员的负担。
(4)布尔类型:PHP 40 支持布尔类型。
(5)进程生成:在 UNIX 环境下的 PHP 40 提供了一个很智能和通用的生成进程, 使用了一种名为基于automake/libtool的系统生成技术。
(6)COM/DCOM 支持:PHP 40 提供 COM/DCOM 支持 ( 仅用于Windows 环境 ) 可以无缝地存取和访问 COM 对象。
(7)与PHP 30 兼容性很好:PHP 40 是与 PHP 30 代码向后兼容性接近100% 。由于 PHP 4 的改进的体系结构,两者有一些细微的差别,但是大多数人将可能永远不可能遇上这种情况。
PHP介绍
(8)配置:PHP4重新设计和增强了PHP。ini文件,这使得用PHP。ini来配置PHP显得极为容易,这个文件可以在运行时被Apache(unix系统)或由Windows 注册(Windows 环境)。
(9)加密支持:PHP4实现了完整的加密, 这些加密功能是一个完整的mycrypt库,并且 PHP 40 支持哈希函数。Blowfish,TripleDES,MD5,并且SHA1 也是可使用的一些加密算法。
(10)类型检查:PHP 40 支持同一操作符用于评类型检查:“===“( 3 等号运算符 ), 为在两个值和其类型之间作检查。例如,“ 3 ” ===3 将视为假 ( 类型是不同的 ), 而“ 3 ” ==3 ( 相等判断 ) 将视为真。
(11)FTP 支持:PHP 40 支持 FTP 。通常, 你会为通过一个调制解调器连接下载一个大文件提供一个接口。然而, 如果你确实有需要,可以使用PHP 。
(12)PHP4新增函数或功能增强函数:PHP 40 新增了许多函数,同时也将许多现有的函数功能进行了增强,以下是一些例子。 array_count_values() eval() foreach() nclude() ob_end_clean() ob_end_flush() ob_get_contents() ob_start() strip_tags() unset()
(13)“here”打印:PHP 40 的“Here”打印是与Perl类似的, 尽管完全不相同。“Here”是打印大容量文章的一个有用的方法,例如在 HTML文件中,不会漏掉任何一个字符,例如目录标记。
(14)HTTP Session fallback 系统:为 HTTP Session管理的一个 fallback 系统在 PHP 40被实现 。缺省情况下,Session标识符由cookies存储。如果没有cookies支持或一项cookies任务失败,Session标识符自动被创建并在 URL 的查询字符串中被携带。
(15)ISAPI 支持:PHP 40 能作为一个个性化的 ISAPI 模块作为 IIS插件 。这比 PHP 30 更有效, 它作为一个外部的程序来运行。
(16)内存:PHP 40 能更有效的使用内存, 导致较少的内存占用消耗,这主要归功于引用计数技术的实现。
(17)其他类成员函数:在 PHP 40 你能在成员函数本身的作用域或全局范围内调用其他类的成员函数。例如,你能用一个子函数覆盖父函数,并在子函数中调用父函数。
(18)多维数组:在 PHP 40 ,利用GET,POST,Cookies的进行的数据传输支持多维数组。
(19)个性化的 HTTP Session支持:HTTP Session处理, 包括 fallback 系统管理,在 PHP 40被它的新库函数实现 。在版本 30 中处理Session要求使用 PHPLIB 和第三方的库函数, 它比把Session直接地由 PHP 支持慢了许多。
(20)个性化的 Java 支持:PHP 40 支持和java的交互。这种个性化的Java 支持为PHP 在 Java 对象上创建和使用方法提供一个简单并且有效的工具。
21)对象和数嵌套组:PHP 40 实现了功能更加强大的对象, 移去了 PHP 30存在的种种句法限制。对象能在数组以内被嵌套并且反过来也如此, 可以根据你的需要实现嵌套。
(22)面向对象的编程:PHP 40 为面向对象的编程和构造类及对象提供扩展的功能和新特征。PHP4实现了对象重载,引用技术等新技术。
(23)对象重载支持:对象重载语法允许第三方的基于面向对象的类库使用 PHP4 的面向对象的特征存取他们自身的功能。使用这个特征的一个 COM 模块已经被实现了。
(24)输出缓冲支持:PHP 提供了一个输出缓冲函数集合。输出缓冲支持允许你写包裹函数功能压缩缓冲区。在 PHP4 的输出缓冲支持允许 HTML 头信息存放, 无论 HTML的正文是否输出。头信息( (header(), content type, and cookies ) 不采用缓冲 。
(25)增加了PCRE 库:PHP 40 包括一个 Perl 兼容的正则表达式 (PCRE ) 库, 和正常regex库一起与 PHP 绑定。split 和replace PCRE 功能被支持。PCRE 和 Perl 正规表达式之间有一些细微差别。
(26)PHPini 文件:PHPini文件在 PHP40 被重新设计, 使用的 PHP 的配置PHPini是更容易并且更有效的。全部文件能被Apache 在运行时间操作 ( 在 Apache环境 下 ) 或由 Windows 注册表 ( 在 Windows 下面 ) 。被加入PHPini文件的配置指令自动地在所有相关的模块中被支持。
(27)引用计数:PHP 40 为系统中的每个数值提供了引用计数, 包括资源。一旦一个资源不再被任何变量引用,它自动地被释放以节省内存资源。利用这个特征的最明显的例子一个内置SQL查询的循环语句。在PHP 30中 ,每次递归另外的 SQL 结果集合重复申请内存,直到脚本执行完毕,这些结果集合占用的内存才被释放。
(28)支持引用:通过引用可以改变一个变量的值。
(29)函数的运行时绑定:PHP 40 的运行时间绑定功能允许你在他们被声明以前调用, 无论声明是否在代码以后或是在运行时间。
(30)类的运行时信息:PHP 40 支持在运行时刻存取下列类信息:一个对象的类名,一个对象的父类的类名字,以及对象函数所在的名字。
(31)服务器抽象层:为支持Web服务器提供了增强型 SAPI ( 服务器 API ) 接口,是 PHP 4。0 不可分的一部分。这个服务器抽象层,提供了通用的WEB服务器接口支持,支持多线程WEB服务器,为大多数的WEB服务器提供透明的支持, 这些服务器包括 Apache ,IIS ( ISAPI ), 以及 AOL 服务器。
(32)语法的点亮显示:PHP 40 语法的点亮显示允许开发者看见源代码而不是脚本, 这个功能比PHP 3。0中的更有效。它跑得更快,更执行得更好,并且产生更紧凑的HTML代码。
(33)由引用改变变量的值:PHP 40 由引用支持可变的赋值, “关联”的2个变量之中个的任何一个的值被改变,另外的变量的值同样被改变,这类似与C中的指针类型。
(34)在引用字符串中的变量引用:PHP 40 增强了在引用字符串中的变量引用。例如, 这个例子在 PHP 30中 是不可能做到的 : print “${a[0]->bingo}“
PHP 在数据库方面的丰富支持,也是它迅速走红的原因之一,它支持下列的数据库或是数据文件:
· Adabas D
· DBA
· dBase
· dbm
· filePro
· Informix
· InterBase
· mSQL
· Microsoft SQL Server
· MySQL
· Solid
· Sybase
· ODBC
· Oracle 8
· Oracle
· PostgreSQL
而在 Internet 上它也支持了相当多的通讯协议 (protocol),包括了与电子邮件相关的 IMAP, POP3;网管系统 SNMP;网络新闻 NNTP;帐号共用 NIS;全球信息网 HTTP 及 Apache 服务器;目录协议 LDAP 以及其它网络的相关函数。
除此之外,用 PHP 写出来的 Web 后端 CGI 程序,可以很轻易的移植到不同的操作系统上。例如,先以 Linux 架的网站,在系统负荷过高时,可以快速地将整个系统移到 SUN 工作站上,不用重新编译 CGI 程序。面对快速发展的 Internet,这是长期规划的最好选择。
在加入其它的模块之后,提供了更多样的支持如下:
· 英文拼写检查
· BC 高精确度计算
· 西洋历法
· PDF 文件格式
· Hyperwave 服务器
· 图形处理
· 加密与解码功能
· 散列处理
· WDDX 功能
· qmail 与 vmailmgr 系统
· 压缩文件处理
· XML 解析
除此之外,一般语言有的数学运算、时间处理、文件系统、字符串处理、行程处理等功能,它一样都不缺。再加上它是免费的系统,使得成本与效益比,几乎等于无限大!
33 PHP 及其语言比较
无可置疑的,写 CGI 的方式有很多种,而 PHP 只是其中的一种选择罢了。对资深的网站站长来说,CGI 的写作语言应是随着需求而更动。毕竟,在一个对系统反映速度要求极严格的系统而言,恐怕只有 NSAPI 语言写的 CGI 程序才能符合要求了。在其它的场合,相信使用 PHP 来作为 CGI 的语言是游刃有余,而且是最适合的。
以下是几种语言的比较:
程序语言 PHP ASP CGI NSAPI ISAPI
操作系统 均可 Win32 均可 均可 Win32
Web服务器 几种 IIS 均可 Netscape Server IIS
执行效率 快 快 慢 极快 极快
稳定性 佳 中等 最高 差 差
开发时间 短 短 中等 长 长
修改时间 短 短 中等 长 长
程序语言 PHP VB 不限 C/C++ C/Delphi
网页结合 佳 佳 差 差 差
学习门槛 低 低 高 极高 高
函数支持 多 少 不定 中等 少
系统安全 佳 极差 最佳 佳 尚可
使用站点 超多 多 多 极少 少
改版速度 快 慢 无 慢 慢
其中的 PHP 可用在几种 Web 服务器上;传统 CGI 就不限是哪种操作系统或 Web 服务器平台;NSAPI 一定要在 Netscape 的服务器 (如 Netscape Enterprise Server 或 FastTrack Server) 上才可以执行,但可支持多种操作系统 (UNIX 或 Win32);ASP 及 ISAPI 只在 IIS 上有完整的功能。
在稳定性上,由于 NSAPI 或 ISAPI 是动态连结的方式,因此在执行若出现问题,会使得 Web 服务器一起瘫痪。而 ASP 在吾人实际应用经验上,隔阵子就会使系统不稳定,需要重开操作系统。PHP 在许多的站点使用上,不但长期使用都没有问题,而且程序的稳定性也不错。当然最稳的还是传统 CGI 程序,因为它是由操作系统负责控制,不会因 CGI 程序的错误导致 Web 服务器的不稳定。
在开发及维护时间上,PHP 及 ASP 都有不错的表现。而 NSAPI 及 ISAPI 则需要长时间的开发过程,在稳定上线后,这二种语言反倒是效率最佳的方法。传统的 CGI 程序则要视开发工具语言而定了,用 Perl 或是 shell script 不需要编译的过程,直接就可以执行,若用 Delphi 或 VC/BCB 甚至用组合语言等都要经过编译才能执行,至于用 VB 来写传统 CGI,唉。
要比较和网页结合的能力,PHP 和 ASP 是并驾齐驱的,其它的方式就不能内嵌 HTML 语法了。而这也是影响开发时间的因素之一。
就系统安全性而言,ASP 是最差的,在没有经过微软的 IIS Service Pack 处理过,使用 ::$DATA 就可以看到 ASP 的源代码,这真是叫人不敢领教。当然,传统 CGI 的程序,由于是由操作系统直接管理,要破解的难度最高,黑客必须由操作系统下手,而不能由 Web 服务器下手。PHP 在许多商业及非商业使用时,也没有听过有什么安全的问题。
在新增功能及改版方面,传统的 CGI 由于不受任何语言限制,没有这方面的问题。PHP 是最有活力的,数天至数周就有一个新版本出现,每次的新版,就代表更多的功能及更改更多的错误。其它的 ASP、NSAPI、ISAPI 就视它的 Web 服务器改版速度了,ASP要等到 IIS 50 出现时,才会有 ASP 30。
总而言之,在 Web 的后端 CGI 程序,就像鱼与熊掌一般,没有高效能又开发方便的选择。不过相信 PHP 是处于开发容易、效能亦不错的平衡点上。
如果说ASP是一个COM,那么PHP说的更精确了可以说PHP是一个纯粹的Script翻译器。这也是PHP由30升级为40的一个重大原因,在4。0这个版本中,由于重写了语法分析器,从而加快了PHP整体的效能。而且从中你也就会明白为什么PHP需要支持这种或是那种扩充功能时它一定要与相应系统的lib库进行再编绎的原因。正因为它是正宗的“翻译器”,所以它是将script翻译成为需要执行的函数,再去执行它们,外部扩充不能由一些“动态加载”的方式进行,所以只能静态的编绎进PHP中(这只能在windows中除外)。
在PHP的官方网站可以下载源码(wwwphpnet),进入之后选择DOWNLOAD里面的Complete Source Code就能下载,具体的页面地址是:http://wwwphpnet/get/php-529tarbz2/from/a/mirror
如何把自己写的php源代码变成程序,就像windows下的计算器那样
本文2023-11-30 04:31:53发表“资讯”栏目。
本文链接:https://www.lezaizhuan.com/article/584536.html