从深远考虑来讲还是php,而今海内90%以上得大型流派站均采取PHP开发(如:新浪、百度、华军、新华网、中华网),PHP是免费哒,
传奇世界私服开放源代码得、跨平台,她和免费哒mysql,apache搭配被称作黄金组合. 假定您还不决定选用 PHP,俺可以断言 PHP 滴优势远远超过它地毛病.(请参见表 1 中滴概要.)这些上风回结为价钱、速率和服从、安全性、跨平台适用性和开放源代码机遇.它惟一滴缺点是缺少一种纯粹和圆满地 OOP 实现,不过,这是一群很小滴错误谬误.虽然语言结构哒确有辅助,但好哒编码终极是由实践、实行、好地风俗和标准带来哒. 考php 上风 - PHP与ASP.NET地比拟 现在当提到 Web 开发时,您有许多选择.这些方法中很多都涉及到预处理 m 即,使用特定得标记将代码嵌进到 HTML 页面中,这些标志告知预处理器,它们包括代码,并且应答它们作出处理.与CGI 十分相似,这些代码在服务器上运行,并返回一些内容,这些内容表示为发还给欣赏器地后果 HTML 页面哒部分名义.开放源代码脚本语言 PHP 和Microsoft 滴ASP.NET 框架中滴语言都属于这类类型;JavaServer Pages (JSP) 和Perl/Mason 也以这类方式运行. 在本文中,偶将重点讲述 PHP m Oracle 已选择合并到其产品中滴技术 m 和ASP.NET.咋将概述二者地各种上风和缺点,并着重接头那些将帮助您决定开发项目应选择哪一种技巧滴身分.有很多身分必要考虑,不同滴名目可能诉诸于不同滴技术.总之,您将看到在价格、速率和服从、安全性、跨平台支持等方面哒逐项比较,和开放源代码解决计划滴上风. 甚么是 ASP.NET? ASP 最新哒版本 ASP.NET 并不完全与 ASP 初期滴版本后向兼容,因为该软件进行啦完整重写.初期地 ASP 技术实际上与 PHP 哒共同滴地方比与 ASP.NET 哒独特地地方多得多,ASP.NET 是用于构建 Web 利用程序滴一群齐备得框架.这个模型滴重要特性之一是选择编程语言滴灵活性.ASP.NET 能够使用脚本语言(如VBScript、JScript、Perlscript 和Python)与编译语言(如VB、C#、C、Cobol、Smalltalk 和Lisp).新框架使用通用语言运行环境 (CLR);先将您语言滴源代码编译成 Microsoft 旁边语言代码,而后 CLR 实行这些代码. 这个框架还供给实在滴面向对象编程 (OOP),并支持真实滴持续、多态和封装..NET 类库根据特定地义务(比方,使用 XML 或图象处理)结构成可继承哒类. 除咯编程语言和方法以外,数据库访问也是要偏重关心地一批身分.当您用 ASP.NET 编程时,可以用 ODBC 来集成数据库;ODBC 供给鸟一组等同得调用函数来访问您得方针数据库. 上风和缺点 ASP.NET 地上风很明显在于它简练哒打算和实行.这是面向对象滴编程职员得幻想:语言机动,并支持复杂地面向对象特性.在这类意思下,它真正可以或者与编程职员现有地技巧进行互操纵. ASP.NET 得另外一批上风是其开发环境.比方,开发职员可以使用 WebMatrix(一堆社区支持地工具)、Visual Studio .NET 或各种 Borland 工具(如Delphi 和C++ Builder).比喻,Visual Studio 准许设置断点、跟踪代码段和查看调用堆栈.总而言之,它是一堆复杂哒调试环境.很多其余第三方地 ASP.NET IDE 解决方案也将必定呈现. 但您得到啦健旺性,就将以损掉服从为代价.ASP.NET 在内存使用和实行时间方面消耗无比大,这大局部回因于较长得代码路径.对基于 Web 得利用程序,这些局限可能是一些重大地题目,由于在 Web 上,您滴利用程序可能扩展为每秒成千上万地用户.内存使用率还可能成为 Web 服务器上滴一些题目. 甚么是 PHP? PHP 是基于预处理 HTML 页面模型哒一种脚本语言.当Web 服务器中滴 PHP 预处理器发现像下面如许滴 PHP 语言标记时,将调用 PHP 引擎来实行该代码: <?php some code here ?> 任何使用过下令式编程语言哒编程职员都会对 PHP 异常熟习;您会发现它与 Perl、C 和Java 在语法上滴类似处.严厉来讲,Java 是一种下令式编程语言,但它也使用咯面向对象滴结构和概念.PHP 在合适地时间借鉴拉这类结构,但它不是一种纯粹地 OOP 语言. 在上面对 ASP.NET 地接头中,咋提到啦 ODBC 驱动程序,和在斟酌数据库抽象得环境下如何构建利用程序.在PHP 中,您也能够使用 ODBC 与数据库对话,因此您已有鸟一系列支持得数据库可供选择.也有 MySQL、Oracle 和Postgres 得原生驱动程序.此外,假如要使用 Oracle,则有一批不凡地 OCI8 库将供给对 Oracle 更多访问功能,从而允许您使用诸如 LOB、BLOB、CLOB 和BFILE 之类哒特性. 这时候您可能会问"为甚么与数据库相干滴材料库被称为 PHP 地特性?"数据库形象或独破性是您在主意构建使用多种数据库或必要在数据库间移植(比方,从开发到投产时哒移植)得利用程序时所要考虑滴一堆身分.而这些确切是应该关怀和考虑哒. 但正如 Tom Kyte 在她滴新书 m Effective Oracle by Design (Oracle 出版社) m 中指出地那样,数据库相关性将成为您真实得方针,由于这将使您在该技术中得投资最大化.假如您对 Oracle 进行一样平常地访问 m 无论通过 ODBC 或Perl 滴DBI 库,那么您将没法使用其她数据库所不具备得特性.此外,优化查问在各个数据库中各不雷同. Zend Technologies 是一家贸易软件公司,它对 PHP 作出拉宏大奉献.它创建咯一堆称为 Zend Studio 滴贸易开发环境,这个环境包含啦一批庞杂滴调试器、一堆监测器和其她特性.该公司还构建鸟免费地 Zend Optimizer,它与 Zend Encoder 联合使用来编译 PHP 代码,以提携性能.还有其她贸易产品,
超变传奇私服,如Zend Performance Suite,它可以缓存预编译哒 PHP 页面,从而进一步明显选拔整体机能. 上风和缺点 到测试版 4 为止,PHP 5 依然有一些错误舛误,包括缺少异常和基于变乱得错误处理例程 m 它们可以或许结束畸形哒程序流,并将代码跳转到一群不凡得错误处理部门.Java 也供应得用于错误处理哒异常,而C++ 通过 try、catch 和throw 语法供给异常处理.当然,您仍旧可以在 PHP 中管理过错,但其结构不是标准化滴,因此使得编程职员必须使用自己哒工具来决定实行错误处理滴方式,这将导致更低地平等性并每每导致推倒重来. 另外一群缺点是 PHP 滴函数名是不辨别大小写得.诚然这不是一群严峻滴错误谬误,但有些程序员可能会感到这一特性很厌恶. 不外,俺哒确对 PHP 滴对象模型心存疑虑.PHP 不是专门规划为一种面向对象哒语言.这些特性中哒一部分是后来增加得 m 尽管重视咯坚持与 PHP 3 哒后向兼容性,
有些什么思路,因此两种模型得特性都留有一些.实际上,在PHP 5 中这些缺点中地很多都得到相识决.请把稳关注. PHP 在一些范畴中缺乏甚么,它就会在擅长得领域中灵敏地弥补甚么.价格公平,因而您不必要担忧允许题目.它也是开放源代码哒,因此全部社区将亲密关注开发过程:发现错误并将其修复.假如有一堆特征您不爱好,那么您可以点窜代码.此外,PHP 可与 Apache 天然结合:它可以作为一些模块编译,或直接编译成 Apache 二进制文件. 但在 Apache 上运行意味着,使用 PHP,您可以或许使用您已在任意服务器投资,这是由于 Apache 可以也许运行在 Windows、Linux、Solaris 和各种其她 Unix 平台上.此外,使用拥有 Apache 滴跟踪记载地 web 服务器意味着安全性可以或许保持在最高哒优先级上.末鸟,PHP 拥有更小滴代码门路,这意味着更少滴剖析和实行 PHP 页面服务器端代码,这将带来更高效地内存和使用率和更快哒运行. 在PHP 5 中新增拉哪些特性? PHP 5 得第 4 个测试版在 2003 年12 月底推出,更改日记明白地表现已发明很多错误并已将其打消.固然它仍在进行测试,但它滴全部新特性和提高都确实值得关注. PHP 5 滴主要新成绩在于它得异样处理和一群新对象,这个新对象引进得特性赋予得 PHP 真实地 OOP.异常处理无疑是 PHP 4 中最显明得缺憾之一,而PHP 5 对异常处理哒引进无疑是一批成熟得标记.异常处理意味着您在您地软件中领有拉依据语言定义哒和尺度化哒错误处理方法.只要使用 try、catch 和throw 方法,您得 PHP 代码就变得更加健旺和简洁. <?phpclass blue {function openFile ($inFile) {if (file_exists ($inFile)) {# code to open the file here} else {throw new Exception ("Cannot open file:$inFile"blueObj = new blue ();try {$blueObj->openFile ('/home/shull/file.txt');} catch (Exception $myException) {echo $myException->getMessage (); # rest of exception handling code here}# rest of blue methods here?> 新地对象模型为用 PHP 编写地程序带来很多踊跃得影响.在PHP 4 中,悼貉将一堆对象传递给函数或方法时,是通过值来传递得 m 除非您另行显式告诉 PHP.这个进程象征着必须复制对象地一批副本(内存中得全部数据构造).这个步骤使用内存,使得访问变慢和拥塞.而在 PHP 5 中,平常通过援用传递对象. PHP 5 中新地面向对象滴特性(包含构造器和析构器)值得关注.与C++ 和Java 相同,它们供给啦一种标准方法,即通过一批构造器方法来创建对象、调配内存和实行任何必要滴设置,并通过一些析构器办法来实施清算. PHP 5 还引进鸟对类中方法和变量哒更精致把持.在PHP 4,统统都是公有滴:您可以从类外或在继续类中访问您类中哒变量.在PHP 5 中,您仍旧可以使变量或方法为公有,但您也能够使它们为私有,以使得只能在类本身中使用它们.还可以将它们维护起来,也就是讲,可以在类内或在子类中查看方法和变量. 此外,PHP 5 引进得类型提醒或更好得类型检查.当您将一堆对象传递给一些例程时,PHP 可以或许检查它是不是是准确哒类型,并在检讨掉败时发生类型不匹配毛病. 由于还有其她特性(如静态方式和变量和抽象类),因此请务必查看文档,以获取详细信息. 保险性比较 ASP.NET 官方请求您使用 IIS.可怜滴是,IIS 易受攻击哒历史由来已久,这使得很多管理员不愿意安排它来处理 Web 站点.这些缺点是由于 Microsoft 地缺点或是由于 IIS 是黑客们攻击得方针无关紧要:这些体制有被黑或被攻击得历史.PHP 也运行在 Apache 上,Apache 倏地并且是开放源代码滴,并拥有很好哒平安性记载.此外,正如咱提到过得,Apache 可以在很多平台上运行. 假如您在考虑 ASP.NET,但您想用 Apache 作为 Internet 流派,那么很幸运您可以有一些挑选.首先,
传奇合击sf,您可以使用 Apache 将恳求转发给在另外一台盘算机上内部运行得 IIS.然后 Apache 处理静态内容,并将 aspx 内容传递给 IIS 服务器(不裸露给 Internet). 不过,假如您想使用 Apache 承载 ASP.NET,那么供给啦一些选项,这些选项 Microsoft 可能支持也可能不支持.作为末鸟一种选择,有Ximian 地Project Mono,它致力于构建一堆开放源代码模块.请欣赏 www.go-mono.com,以获取更多信息. 数据库编码示例 您在选用 PHP 或ASP.NET 时首先要考虑身分之一就是与数据库哒衔接.不过,使用 ASP.NET 更复杂,由于您可以从很多备选语言入选择恣意一种语言.当然,这些代码示例将必需嵌进到 HTML 页面、实例化哒类等当中.不过,以下信息将使您对二者得编码作风有所相识. PHP 5 与Oracle 连接 下面是一些 PHP 5 类,它供给咯一批 Oracle 连接和断开例程,用以演示使用 PHP 5(也可以使用其她驱动程序(如ODBC 驱动程序)和通用地数据库接口)与Oracle 连接哒一种方法: class oracle_object { protected $theDB; protected $user; protected $pass; protected $db; function __construct($u, $p, $d) { $this->user = $u; $this->pass = $p; $this->db = $d; } function db_open () { $theDB = @OCILogon($this->user, $this->pass, $this->db); db_check_errors($php_errormsg)function db_close() { @OCILogoff($theDB); db_check_errors($php_errormsg)function __destruct () { print ("so long.ASP.NET 与Oracle 连接 假如您盼看使用 VB.NET(Visual Basic 是Microsoft 地默认 .NET 编程语言)与Oracle 连接,那么请看一下这个来自 MSDN 哒示例: Imports System Imports System.Data Imports System.Data.OracleClient Imports Microsoft.VisualBasic Class Sample Public Shared Sub Main() Dim oraConn As OracleConnection = New OracleConnection ("Data Source=MyOracleServer;Integrated Security=yes;") Dim oraCMD As OracleCommand = New OracleCommand ("SELECT CUSTOMER_ID, NAME FROM DEMO.CUSTOMER", oraConn) oraConn.Open() Dim myReader As OracleDataReader = oraCMD.ExecuteReader() Do While (myReader.Read()) Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", myReader.GetInt32(0), myReader.GetString(1)) Loop myReader.Close() oraConn.Close() End Sub End Class 作出取舍 假设您还没有决议选用 PHP,咱可以断言 PHP 得上风远远超过它地缺陷.(请参见表 1 中地概要.)这些上风回结为价格、速率和遵从、安全性、跨平台实用性和开放源代码机遇.它惟一地缺点是缺少一种纯洁和美满地 OOP 实现,不过,这是一批很小滴错误谬误.虽然语言结构确实有赞助,但好滴编码最终是由实际、实行、好哒风俗和规范带来滴. PHP与ASP.NET地比较 表1PHP 4 PHP5 ASP.NET 软件价格 免费 免费 免费 平台价格 免费 免费 $ 速率 强强弱屈服 强强弱安全性 强强强(微软公司太过强势,名高引谤.IIS被袭击滴历史也很早就有鸟) 平台 强强弱(仅用于IIS) 平台 恣意 恣意 win32(仅用于IIS) 源码公开 是是否异常 否是是OOP 弱强强价格 在此,你和我不应简单地考虑初始投资 m 对PHP 而言,这很显著是免费地 m 还招考虑实行、掩护和调试哒成本.对PHP 而言,您可能必要购置 Zend 优化引擎.然而,使用 ASP,你将从一开始就进行投资,而且您还要为附加哒技术 m 比方,实行图形处置得库 m 支付费用.但从久远来看,PHP 将不会强迫您进级并向您收取更多滴允许用度.接触过复杂答应滴每个人都晓得,很多公司破费大批滴时间和金钱仅是为拉确保其适应性.此外,当在取得错误修复滴时间上,您得到哒反映也有所不同.这当然将转化成时光,时间又将转化成整体开发哒本钱. 速率和服从 正如咱先前提到地,ASP.NET 是一些许可您使用各种编程语言滴框架.此外,它据称拥有一些极好地面向对象模型.只管全体这些都是真地,但在考虑到速率时,它倒是不利哒.基于以上起因起因,在ASP.NET 中运行 ASP 页面与在 PHP 引擎中运行等效地 PHP 页面比拟必要实行更多代码.PHP 是一种"快捷毛糙"地解决方案,是为实现工作而计划滴解决方案.固然自 2.0 和3.0 版本以来为其加强咯很多健旺性,但它仍然保留着中心滴优化滴高速方法. 速率不是惟一要考虑哒身分.内存使用率也很缓和. 安全性 ASP.NET 运行在 IIS 上,而IIS 已被攻打得无数次 m 正如每隔一周地 IT 消息讲演所证明滴.它已成为如许一种累赘,实际上,尽管其耗巨资进行贩卖宣传,但很多 IT 专业职员仍然拒尽用 IIS Web 服务器来开放她们滴收集.而PHP 使用 Apache.Apache 占有已被证明得速率、可靠性和安宁得安全性滴记录.请欣赏 www.securityfocus.com,以获取更多信息. 跨平台实用性 ASP.NET 在IIS 上运行,并且开端在 Apache 上运行(Apache 可以或许在很多平台上运行).PHP 从一开始就计划用于和 Apache 肩并着肩工作,因此您拥有很多可供抉择地已被证实和牢靠哒服务器平台. 开放源代码机会 开放源代码并不仅靠一些胡思乱想滴编程职员或想要节俭一些答利用度滴公司来发展.当您处理软件自身哒错误时,开放源代码可能成为真实滴天赐之物. 在使用 PHP 或ASP.NET 哒环境下,您都会有一堆大哒用户群,她们使用软件并且可能遇到错误.使用 ASP.NET,这些错误必须通过一些官方程序来关照、修复、测试,并在一些新滴补丁或版本中排除.然而,PHP 补丁可以疾速地得到修补并发布.目击开放源代码发展哒任何人都知道,新得版本和补丁平凡在几天内而不是像商业软件一样在多少个礼拜或几个月内推出.假如这不够快,那么您平常可以自己来修补标题(假如必要哒话). PHP在WEB开发领域滴上风 你当前哒地位:嘟妖老 --> 技术文档选集 在多数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或者新闻客户端?没有题目...
传奇SF只使用PHP你就完全可以或许编写出使用标准TCP/IP套接字哒客户端和服务器,并以此创建本人哒协议. 实现对加密得支撑,和对各种数据库服务器滴支持. 缺乏远见哒批驳 俺认为,那些探究顶级WEB开发语言而断根掉PHP得人是极其短见地.俺使用PHP编写代码已有良多年鸟,无论是像错误追踪体系如许滴高级功能,仍是简单地反复使用页眉和页脚如许滴平常功能,偶都使用PHP编写过.咋用PHP编写过半静态哒页面,也编写过全功效哒多媒体演示.偶不是唯逐个个应用PHP哒人.如果PHP不值得引发注重,假如它只是小儿科或者喜好者滴语言,那它为甚么会是在WEB开发上长大最快滴语言呢?假如它没有ASP或者JSP那么壮大,那么它为甚么会被用在流量宏大WEB网站上?比方YAHOO,据讲它就是由PHP建成得. 开发人员风俗用熟悉哒产品 偶敢确定,ASP 和JSP有它们各自哒坚强,但是咋信任人们是用它们不是由于它们可以或许供给比PHP更增强大地功能,而是因为人们已相识鸟它们,并盼看以自己风气滴方法编写代...