PHP在Web开发领域的优势


Posted in PHP onOctober 09, 2006

    在多数WEB开发者眼中,ASP和JSP都被认为是领跑者,而PHP却被认为是个弱小的“挣扎者”,或者说它是一门被贬低为业余者才使用的语言,不值得参与企业Web开发的竞争。在我看来,PHP没有被当作竞争者的理由是评论者缺乏对它的了解,而且也不了解用于Web开发的其他操作系统。和一些观点相反,Windows不再占有Web虚拟主机服务市场的最大份额,我猜想它在Web开发这一领域里也在被摧城拔寨。

在企业开发里为什么没有PHP?

 
很显然,PHP被认为落后ASP和JSP太多,以至于它是没有什么用的,但是这恰恰与事实不符。PHP本身就是一门强大的语言。它事实上在每个发行版的Linux上都有,在Mac OS X上也有。获取开发和使用PHP代码的构件(building-block)工具和软件都是免费的。用于开发PHP应用程序的商业集成开发环境(commercial integrated development environments,IDES)也可以找到——这样的工具有Komodo(它运行在Linux和Windows上)和Zend Studio(这个应用程序能够运行在任何带有Java运行环境的操作系统上)。你几乎可以在每个Web虚拟主机上运行由PHP建立的网站,而不要考虑服务器所运行的是什么操作系统,这一事实让PHP更加具有吸引力。

PHP能够提供什么?

先把PHP周围有什么忘掉一会儿,而考虑一下PHP自身能够提供什么。它是一门强健的服务器端语言,能够提供相当多的功能,而且能够迅速地为页面提供服务。

容易使用

使用C或者Perl或者具有类似风格和句法的另一种语言的任何用户都能够很快上手PHP。尽管它是设计用在Web上的,但是它也能够作为命令行语言使用。你正在编写的Web应用程序需要每个小时或者每天执行一次某些代码吗?使用cron或者类似的计划安排管理器,你可以计划安排PHP代码在你希望的时候执行,使用普通的命令解释脚本或者批处理文件就能够执行这样的代码。不需要自动调用浏览器就能够查看专门的网页,从而执行你的事件,也没有必要依赖来访者的点击来告诉你的系统:特定的代码需要在特定的时候被执行。PHP在这一领域可扩展性的事实是绝对具有吸引力的。

PHP的好处

 
我不是JSP或者ASP的老手,在此我也不想贬低这些语言。相反,我会把注意力放在PHP的好处上。

本地化
PHP让你能够为网站的访问者提供本地化的服务。当用户点击进入网站的时候,网站会根据他们浏览器的设置自动地以其母语向其提供页面。要实现这一点不需要使用用于语言翻译的烦杂文件,而是使用和本地化的C程序所具有的相同能力,通过一个叫做gettext的系统实现的。如果被请求的语言文件存在,那么用户所看到的文本就是其母语;如果语言文件不存在,那么文本就是缺省的英语或者其他任何你所指定的语言。许多本地化的UNIX应用程序都将gettext作为标准,它让第三方的翻译变得轻而易举。

轻易地使用命令行
PHP支持在需要的地方设置和执行命令行程序。使用标准的UNIX diff工具,它能够生成错误最后一次修改同要使用电子邮件发送到错误的所有者的当前注释之间的不同。PHP代码对在系统上所编写的两个文件执行diff,将其输出作为输入,再生成一个要发送的电子邮件。这封电子邮件是通过PHP自己来发送的。

其他好处
上面的只是我在自己程序里所用到的强大功能中的两个,而还其他的功能。例如,你可以:

即时创建简单的Flash动画。
即时创建PDF文档。
使用高级数学功能,以及面向对象的编程技术。
读取和写入到本地和IMAP邮箱。
在PHP里就可以使用任何标准的Internet协议。想要编写基于PHP的FTP、Web或者新闻客户端?没有问题!只使用PHP你就完全能够编写出使用标准TCP/IP套接字的客户端和服务器,并以此创建自己的协议。
实现对加密的支持,以及对各种数据库服务器的支持。
缺乏远见的评论

我觉得,那些寻找顶级Web开发语言而排除掉PHP的人是极其短见的。我使用PHP编写代码已经有很多年了,无论是像错误追踪系统这样的高级功能,还是简单地重复使用页眉和页脚这样的普通功能,我都使用PHP编写过。我用PHP编写过半静态的页面,也编写过全功能的多媒体演示。我不是唯一一个使用PHP的人。如果PHP不值得引起注意,如果它只是小儿科或者爱好者的语言,那它为什么会是在Web开发上成长最快的语言呢?如果它没有ASP或者JSP那么强大,那么它为什么会被用在流量巨大Web网站上?例如Yahoo,据说它就是由PHP建成的。

开发人员习惯用熟悉的产品

我敢肯定,ASP 和JSP有它们各自的强项,但是我相信人们是用它们不是因为它们能够提供比PHP更加强大的功能,而是因为人们已经了解了它们,并希望以自己习惯的方法编写代码。排除PHP只能表示对这一语言的无知。

 

PHP 相关文章推荐
PHP 5.0对象模型深度探索之属性和方法
Mar 27 PHP
深入解析phpCB批量转换的代码示例
Jun 27 PHP
怎样使用php与jquery设置和读取cookies
Aug 08 PHP
PHP+jQuery 注册模块开发详解
Oct 14 PHP
PHP中curl_setopt函数用法实例分析
Apr 16 PHP
php curl 获取https请求的2种方法
Apr 27 PHP
PHP中的命名空间详细介绍
Jul 02 PHP
PHP实现文件上传与下载实例与总结
Mar 13 PHP
Yii2中datetime类的使用
Dec 17 PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
Oct 13 PHP
PHP基于curl post实现发送url及相关中文乱码问题解决方法
Nov 25 PHP
PHP如何使用array_unshift()在数组开头插入元素
Sep 01 PHP
优化NFR之一 --MSSQL Hello Buffer Overflow
Oct 09 #PHP
风格模板初级不完全修改教程
Oct 09 #PHP
如何对PHP程序中的常见漏洞进行攻击
Oct 09 #PHP
PHP安全配置
Oct 09 #PHP
用PHP 4.2书写安全的脚本
Oct 09 #PHP
3.从实例开始
Oct 09 #PHP
漂亮但不安全的CTB
Oct 09 #PHP
You might like
德劲1103二次变频版的打磨
2021/03/02 无线电
优化PHP代码的53条建议
2008/03/27 PHP
php基础教程 php内置函数实例教程
2012/08/21 PHP
基于Zend的Captcha机制的应用
2013/05/02 PHP
PHP中include与require使用方法区别详解
2013/10/19 PHP
linux下为php添加iconv模块的方法
2016/02/28 PHP
js传中文参数controller里获取参数乱码问题解决方法
2014/01/03 Javascript
Javascript写入txt和读取txt文件示例
2014/02/12 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
2016/01/14 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
JS高级运动实例分析
2016/12/20 Javascript
js随机生成一个验证码
2017/06/01 Javascript
JavaScript中递归实现的方法及其区别
2017/09/12 Javascript
Vue中使用的EventBus有生命周期
2018/07/12 Javascript
对node通过fs模块判断文件是否是文件夹的实例讲解
2019/06/10 Javascript
vue路由插件之vue-route
2019/06/13 Javascript
layui插件表单验证提交触发提交的例子
2019/09/09 Javascript
nodejs实现聊天机器人功能
2019/09/19 NodeJs
解决vscode进行vue格式化,会自动补分号和双引号的问题
2020/10/26 Javascript
[46:28]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
python实现requests发送/上传多个文件的示例
2018/06/04 Python
python编写简易聊天室实现局域网内聊天功能
2018/07/28 Python
Python实现的json文件读取及中文乱码显示问题解决方法
2018/08/06 Python
通过实例学习Python Excel操作
2020/01/06 Python
YOOX美国官方网站:全球著名的多品牌时尚网络概念店
2016/09/11 全球购物
ProBikeKit美国官网:自行车套件,跑步和铁人三项套件
2016/10/13 全球购物
Lou & Grey美国官网:主打舒适性面料服饰
2017/12/21 全球购物
请描述一下”is a”关系和”has a”关系
2015/02/03 面试题
Java如何格式化日期
2012/08/07 面试题
智乐游戏测试笔试题
2014/05/21 面试题
金属材料工程个人求职的自我评价
2013/12/04 职场文书
创先争优个人承诺书
2014/08/30 职场文书
玩手机检讨书1000字
2014/10/20 职场文书
springboot创建的web项目整合Quartz框架的项目实践
2022/06/21 Java/Android
Python绘制散点图之可视化神器pyecharts
2022/07/07 Python