(文/开源中华夏儿女民共和国State of Qatar    

PHPPHP:Hypertext
Preprocessor
)是一种在计算机上实践的脚本语言,主假诺用项在于管理动态网页,也包括了指令列实行接口(command
line interface),大概爆发图形使用者接口(GUI)程式。

数据库编码示例

PHPPHP:Hypertext
Preprocessor
)是一种在微机上实施的脚本语言,重若是用场在于管理动态网页,也隐含了指令列实施接口(command
line interface),或许产生图形使用者接口(GUI)程式。

在2004年二月14日,以Zend Engine 1.0为根基的PHP
4正式释出,2002年十一月十十七日则释出了PHP 5,PHP 5则动用了第二代的Zend
Engine。PHP包涵了广大新特征,疑似深化的面向对象成效、引进PDO(PHP Data
Objects,八个存取数据库的延伸函式库)、以至无数效果上的进步。近些日子PHP
4已经不会持续改革,以鼓舞客户改变来PHP 5。

  PHP 4 PHP 5 ASP.NET
软件价格 免费 免费 免费
平台价格 免费 免费 $$
速度
效率
安全性
平台 弱(仅用于 IIS)
平台 任意 任意 win32(仅用于 IIS)
是否提供源代码
异常
OOP

PHP 5.5.0 发表了第三个 Alpha 测验版本,该版本包涵众多更进一竿和 bug
修复,详细列表请看这里。

在1997年,任职于 Technion IIT 集团的四个Israel程式设计员:Zeev Suraski
和 Andi Gutmans,重写了 PHP 的深入分析器,成为 PHP 3 的根基,而 PHP
也在此个时候改称为PHP: Hypertext Preprocessor.。
经过多少个月测量试验,开荒共青团和少先队在一九九六年十11月释出了 PHP/FI 2,随后就从头 PHP 3
的盛放测量检验,最终在一九九七年11月业内释出 PHP 3。Zeev Suraski 和 Andi Gutmans
在 PHP 3 释出后开始改写 PHP 的主干,那几个在1997年释出的深入分析器称为 Zend
Engine,他们也在以色列的 Ramat Gan 创造了 Zend Technologies 来管理 PHP
的开销。

然而,要是您想采用 Apache 承载
ASP.NET,那么提供了有个别采撷,那几个选拔 Microsoft
可能援救也大概不协助。作为最终一种选拔,有 Ximian 的 Project
Mono,它致力于创设三个绽开源代码模块。请浏览 www.go-mono.com,以获取更加多消息。

PHP 最先由 Rasmus Lerdorf 在一九九三年表明,现在PHP实质上的正经由PHP
Group和开放源代码社会群众体育维护。PHP 以 PHP License
作为许可公约,可是因为这几个公约限定了PHP名称的施用,所以和开花源代码许可合同GPL不相容。

LNMP 专职能编写翻译安装 for
CentOS 6.3笔记
http://www.linuxidc.com/Linux/2013-05/83788.htm

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...");
  }

}

PHP 如今被分布的行使,极度是在服务器端的网页程式开垦。平时的话 PHP
超多进行在网页服务器上,透过施行PHP程式码来发出使用者浏览的网页。PHP
差超少能够在其余的操作系统上执行,而且选取 PHP
完全部是免费的。根据二〇〇七年4月的总结资料,PHP
已经被设置在超越二零零零万个网址和100万台服务器上。

PHP 5中新的面向对象的特色(蕴涵布局器和析构器)值得关切。与 C++ 和 Java
相同,它们提供了一种标准方法,即透过四个结构器方法来成立对象、分配内部存款和储蓄器和实行别的要求的设置,并通过多少个析构器方法来施行清理。

PHP 原来的简单称谓为 Personal Home Page,是Rasmus Lerdorf
为了要保险个人网页,而用c语言开采的一部分CGI工具程式集,来顶替原来使用的
Perl 程式。最先这几个工具程式用来体现 Rasmus Lerdorf
的私有履历,以至总括网页流量。他将那么些程式和有个别表单直译器整合起来,称为
PHP/FI。PHP/FI 可以和数据库连接,爆发轻便的动态网页程式。Rasmus Lerdorf
在1995年5月8日将 PHP/FI
公开释出,希望得以通过社群来加速程式开拓与追寻错误。那一个释出的本子命名字为PHP 2,已经有前些天 PHP 的一对雏型,疑似相似 Perl
的变量命名方式、表单管理功效、甚至嵌入到 HTML
中实施的力量。程式语法上也周围Perl,有超级多的限量,可是更简明、更有弹性。

ASP.NET
的另贰个优势是其付出意况。举个例子,开拓职员能够选择WebMatrix(二个社区支持的工具)、Visual Studio .NET 或各样 Borland
工具(如 Delphi 和 C++ Builder)。比方,Visual Studio
允许设置断点、追踪代码段和查阅调用仓库。同理可得,它是一个长短不一的调和遇到。大多其余第三方的
ASP.NET IDE 应用方案也将自然出现。

在配备LNMP的时候蒙受Nginx运维失败的2个难点
http://www.linuxidc.com/Linux/2013-03/81120.htm

在地点对 ASP.NET 的座谈中,作者提到了 ODBC
驱动程序,甚至在寻思数据库抽象的状态下什么样创设应用程序。在 PHP
中,您也足以采用 ODBC
与数据库对话,由此你已经有了一多种援救的数据库可供选拔。也可能有MySQL、Oracle 和 Postgres 的原生驱动程序。别的,假若要采纳Oracle,则有叁个特别的 OCI8 库将提供对 Oracle
更加多访谈功效,进而允许你使用诸如 LOB、BLOB、CLOB 和 BFILE
之类的特征。

推荐介绍阅读:

ASP.NET 官方须求您使用 IIS。不幸的是,IIS
易受攻击的历史悠长,那使得广大大班不乐意铺排它来拍卖 Web
站点。那么些老毛病是因为 Microsoft 的劣势或然因为 IIS
是黑客们攻击的目的细枝末节:这么些体系有被黑或被笔诛墨伐的野史。PHP 也运维在
Apache 上,Apache
火速何况是开放源代码的,并保有很好的安全性记录。其它,正如笔者关系过的,Apache
能够在众多平台上运转。

CentOS 6.3 安装LNMP (PHP 5.4,MyySQL5.6)
http://www.linuxidc.com/Linux/2013-04/82069.htm

速度和频率。正如笔者原先提到 的,ASP.NET
是叁个允许你使用各样编制程序语言的框架。别的,它据称具有五个极好的面向对象模型。纵然具有那个都以确实,但在构思到速度时,它却是不利的。基于上述原因,
在 ASP.NET 中运维 ASP 页面与在 PHP 引擎中运作等效的 PHP
页面前蒙受比供给施行更多代码。PHP
是一种“急迅粗糙”的消除方案,是为成功职业而设计的缓和方案。就算自 2.0 和
3.0
版本的话为其狠抓了比非常多健壮性,但它依旧保留着主导的优化的敏捷方法。

二零零六年PHP 5产生了PHP独一的有在付出的PHP版本。以往的PHP 5.3将会踏入Late
static binding和局地任何的机能加强。PHP 6
的花销也正在打开中,首要的改进有移除register_globals、magic
quotes和Safe mode的功能。

在本文中,我将器重陈述 PHP — Oracle
已摘取归总到其制品中的技艺 — 和
ASP.NET。笔者将概述两者的各样优势和症结,玉石俱焚点商量那个将扶植你决定开采品种应慎选哪一类技艺的因素。有大多因素须要寻思,分裂的类别恐怕诉诸于分化的技术。不问可以预知,您将见到在价格、速度和频率、安全性、跨平台援助等地方的相继相比较,甚至开放源代码施工方案的优势。

Ubuntu设置Nginx
php5-fpm MySQL(LNMP意况搭建卡塔尔(قطر‎
http://www.linuxidc.com/Linux/2012-10/72458.htm

什么是 ASP.NET?

生儿育女景况实用之LNMP布局的编写翻译安装+SSL加密达成
http://www.linuxidc.com/Linux/2013-05/85099.htm

ASP 最新的本子 ASP.NET 并不完全与 ASP
早期的版本后向包容,因为该软件实行了一心重写。初期的 ASP 技术其实与
PHP 的协同的地方比与 ASP.NET 的协同之处多得多,ASP.NET 是用来创设 Web
应用程序的三个完完全全的框架。那么些模型的机要特征之一是选取编制程序语言的八面玲珑。ASP.NET
能够利用脚本语言(如 VBScript、JScript、Perlscript 和
Python)以至编写翻译语言(如 VB、C#、C、Cobol、Smalltalk 和
Lisp)。新框架使用通用语言运市价况 (CL帕杰罗卡塔尔国;先将您语言的源代码编写翻译成
Microsoft 中间语言代码,然后 CLXC60 实践这个代码。

图片 1

优势和症结

PHP 最早由 Rasmus Lerdorf 在1991年表明,以往PHP实质上的正式由PHP
Group和开放源代码社会群众体育维护。PHP 以 PHP License
作为许可合同,但是因为那一个公约约束了PHP名称的选拔,所以和开花源代码许可公约GPL不相容。

在 PHP 5 中新扩展了怎么样特征?

PHP 的发明人 Rasmus Lerdorf

<?php

class 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

?>

图片 2

PHP 5 还引进了对类中艺术和变量的越来越小巧调控。在
PHP 4,一切都以公有的:您能够从类外或在世袭类中做客您类中的变量。在 PHP
5中,您仍是可以够使变量或措施为国有,但您也得以使它们为私有,以使得只可以在类自身中接收它们。还足以将它们保养起来,也便是说,能够在类内或在子类中查看
方法和变量。

图片 3

纵然你还并未有调控选择 PHP,笔者能够断言 PHP
的优势远远超越它的败笔。(请参见表 1中的概要。)那些优势归纳为价格、速度和成效、安全性、跨平台适用性和绽开源代码机缘。它独一的欠缺是干枯一种纯粹和完备的
OOP
完结,可是,那是多个非常的小的劣点。就算语言构造的确有支持,但好的编码最后是由实施、实行、好的习贯和行业内部带来的。

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 5
的最首要新产生在于它的充裕管理和贰个新对象,那几个新指标引进的天性给予了 PHP
真正的 OOP。非常管理无疑是 PHP 4 中最精晓的可惜之一,而 PHP 5
对那多少个管理的引进无疑是多个早熟的申明。至极管理意味着你在您的软件中具备了依靠语言定义的和条件的错误处理方法。只需选用try、catch 和 throw 方法,您的 PHP 代码就变得进一层完备和精练。

ASP.NET 与 Oracle 连接

出于还会有任何特色(如静态方法和变量以至抽象类),由此请必需查看文书档案,以博得详细音讯。

正如那三种最流行的营造 web
应用程序的秘诀的利害

您在选拔 PHP 或 ASP.NET
时首先要考虑要素之一正是与数据库的接连。可是,利用 ASP.NET
更复杂,因为您能够从非常多筹算语言中筛选随机一种语言。当然,这么些代码示例将必须置于到
HTML
页面、实例化的类等之中。然而,以下音信将使您对相互的编码风格具备精通。

但您得到了强壮性,就将以损失效用为代价。ASP.NET
在内部存款和储蓄器使用和执行时间方面费用比非常的大,那超过1/3归因于较长的代码路径。对基于
Web 的应用程序,那几个局限或者是一个严重的主题素材,因为在 Web
上,您的应用程序只怕扩张为每秒无尽的顾客。内部存款和储蓄器使用率还大概变为 Web
服务器上的二个主题材料。

PHP 5 的第 4 个测量试验版在 二零零二 年 14月中推出,纠正日志清楚地出示已意识比相当多怪诞并已将其撤除。就算它仍在拓宽测量检验,但它的享有新特征和演变都真正值得关心。

新的对象模型为用 PHP
编写的次序带给众多主动的熏陶。在 PHP 4
中,当把将三个对象传递给函数或方式时,是由此值来传递的 —
除非你再一次显式告知
PHP。那几个历程表示必需复制对象的三个别本(内部存款和储蓄器中的具有数据布局)。那几个手续使用内部存款和储蓄器,使得访谈变慢和拥塞。而在
PHP 5 中,平时经过援引传递对象。

除了编制程序语言和措施之外,数据库访谈也是要首要关注的叁个成分。当您用
ASP.NET 编制程序时,可以用 ODBC 来集成数据库;ODBC
提供了一组相近的调用函数来拜候您的靶子数据库。

PHP 5 与 Oracle 连接

上边是三个 PHP 5 类,它提供了三个 Oracle
连接和断开例程,用以演示利用 PHP 5(也还行任何驱动程序(如 ODBC
驱动程序)和通用的数据库接口)与 Oracle 连接的一种办法:

优势和短处

在动用 PHP 或 ASP.NET
的情事下,您都会有三个大的客商群,他们运用软件还要或许遇见错误。使用
ASP.NET,这几个错误必需通过八个合法程序来打招呼、修复、测量试验,并在三个新的补丁或版本中消灭。不过,PHP
补丁能够火速地赢得修补并拆穿。目击开放源代码发展的任何人都领悟,新的本子和补丁日常在几天内并不是像商业软件雷同在多少个礼拜或多少个月内推出。借使那远远不足快,那么你平日能够本人来修补难题(借使需求的话)。

安全性相比

其余,PHP 5
引入了体系提示或越来越好的项目检查。当你将四个对象传递给一个例程时,PHP
能够检查它是或不是是正确的花色,并在检查战败时发出类型不相配错误。

但正如 汤姆 Kyte 在她的新书 — Effective Oracle by Design (Oracle 书局) —
中提出的那么,数据库相关性将产生你真正的靶子,因为那将令你在该本领中的投资最大化。若是你对
Oracle 举办平时的会见 — 无论通过 ODBC 或 Perl 的 DBI
库,那么您将无法运用此外数据库所不有所的特点。别的,优化查询在相继数据库中各不相像。

一经您愿意利用 VB.NET(Visual Basic 是 Microsoft
的暗中认可 .NET 编制程序语言)与 Oracle 连接,那么请看一下那些来自 MSDN
的示范:

Zend Technologies 是一家商业软件公司,它对 PHP
作出了重大贡献。它创制了二个称作 Zend Studio
的商业支出条件,那几个条件包涵了二个繁缛的调节和测量检验器、一个监测器和别的特色。该铺面还创设了无偿的
Zend Optimizer,它与 Zend Encoder 结合使用来编写翻译 PHP
代码,以进级性能。还会有其它商业付加物,如 Zend Performance
Suite,它能够缓存预编写翻译的 PHP 页面,从而进一层明显进级全体质量。

什么是 PHP?

而是,作者实在对 PHP 的靶子模型心存疑虑。PHP
不是特意安插为一种面向对象的语言。那几个特点中的一局地是后来加多的 —
就算注意了保险与 PHP 3
的后向包容性,因而三种模型的表征都留有一点点。实际上,在 PHP 5中那几个老毛病中的比很多都拿走了减轻。请留意关心。

那个时候你只怕会问“为啥与数据库相关的资料库被叫做
PHP
的个性?”数据库抽象或独立性是你在费尽心思营造利用三种数据库或索要在数据库间移植(例如,从支付到投入生产时的移植)的应用程序时所要思谋的三个要素。而那几个真的是相应关爱和虚构的。

到测量检验版 4 截止,PHP 5
仍有局地败笔,包含缺乏足够和依据事件的错误管理例程 —
它们能够暂停平常的程序流,并将代码跳转到四个奇特的错误管理部分。Java
也提供了用于错误管理的不得了,而 C++ 通过 try、catch 和 throw
语法提供拾分管理。当然,您还能在 PHP
中管理破绽百出,但其布局不是准则的,由此使得编制程序人员必得选用自个儿的工具来调节进行错误管理的措施,那将引致更低的一致性并反复产生推倒重来。

安全性。ASP.NET
运转在 IIS 上,而 IIS 已被笔诛墨伐了重重次 — 正如每间隔七日的 IT
音信报告所声明的。它已经改成那样一种担负,实际上,固然其耗巨额资金开展发售宣传,但大多IT 专门的学业职员依然拒却用 IIS Web 服务器来开放他们的互联网。而 PHP 使用
Apache。Apache 具有已被认证的速度、可信性和做实的安全性的记录。请浏览
www.securityfocus.com,以取得越多音信。

<?php
some code here
?>

如 今当提到 Web
开拓时,您有非常多精选。那个点子中众多都关系到预管理 —
即,利用特定的标记将代码嵌入到 HTML
页面中,这一个标志告诉预微处理器,它们富含代码,并且应对它们作出管理。与 CGI
极其相像,这么些代码在服务器上运转,并回到一些剧情,那些剧情表现为发回给浏览器的结果
HTML 页面包车型大巴有个别外观。开放源代码脚本语言 PHP 和 Microsoft 的 ASP.NET
框架中的语言都归属那连串型;JavaServer Pages (JSP卡塔尔(قطر‎ 和 Perl/Mason也以这种艺术运营。

PHP
在有个别天地中缺乏什么,它就能够在专长的园地中异常的快地弥补什么。价格合理,因而你无需忧虑许可难题。它也是开放源代码的,因而总体社区将用心关切开垦进度:发现错误并将其修复。假如有一个特点您抵触,那么你能够改进代码。其他,PHP
可与 Apache 自然结合:它能够用作贰个模块编译,或直接编写翻译成 Apache
二进制文件。

跨平台适用性。ASP.NET 在 IIS 上运营,并且最初在 Apache 上运转(Apache
能够在无尽阳台上运维)。PHP 从一发轫就两全用来和 Apache
一齐坐班,因而你有所众多可供选拔的已被认证和保障的服务器平台。

别的利用过命令式编制程序语言的编制程序人士都会对 PHP
特别熟练;您会意识它与 Perl、C 和 Java 在语法上的肖似处。严峻来讲,Java
是一种命令式编制程序语言,但它也运用了面向对象的架议和概念。PHP
在适度的时候借鉴了这种构造,但它不是一种纯粹的 OOP 语言。

PHP 是依照预管理 HTML 页面模型的一种脚本语言。当
Web 服务器中的 PHP 预微处理器开采像下边那样的 PHP 语言符号时,将调用 PHP
引擎来实践该代码:

表 1

价格。在这里,大家不应轻巧地思忖 最早投资 — 对 PHP
来讲,那很明显是无需付费的 — 还应考虑施行、维护和调整的血本。对 PHP
来讲,您大概必要购置 Zend 优化引擎。但是,使用
ASP,您将从一开始就进展投资,并且你还要为附加的本领 —
举个例子,实践图形管理的库 — 支付费用。但从悠久来看,PHP
将不会反逼您升官并向您收取更加的多的认可花费。接触过复杂许可的每壹人都知晓,相当多商厦开支大批量的年华和钱财仅是为了保障其顺应性。其它,当在赢得错误修
复的年月上,您得到的反馈也不相近。那本来将转形成时间,时间又将转产生总体开采的工本。

举个例子你在伪造 ASP.NET,但您想用 Apache 作为
Internet 门户,那么很幸运你能够有局地筛选。首先,您能够应用 Apache
将需要转载给在另一台微管理机上内部运营的 IIS。然后 Apache
管理静态内容,并将 aspx 内容传送给 IIS 服务器(不暴光给
Internet)。

ASP.NET
的优势很让人惊讶在于它简洁的宏图和施行。那是面向对象的编制程序职员的期待:语言灵活,并协助复杂的面向对象天性。在这里种意义下,它真的可以与编制程序人士现成的技术举办互操作。

进程不是绝无只有要思考的元素。内部存款和储蓄器使用率也非常重大。

但在 Apache 上运维意味着,利用
PHP,您能够使用你已经在随机服务器投资,这是因为 Apache 能够运行在
Windows、Linux、Solaris 和各个其余 Unix 平台上。别的,使用具备 Apache
的追踪记录的 web 服务器意味着安全性可以保持在高高的的优先级上。最终,PHP
具有更加小的代码路线,那表示越来越少的拆解解析和执行 PHP
页面服务器端代码,那将带动更便捷的内部存储器和使用率以至更加快的运作。

这么些框架还提供真正的面向对象编制程序(OOPState of Qatar,并扶植真正的接轨、多态和包装。.NET 类库依照特定的职分(举例,使用
XML 或图像管理)组织成可继续的类。