PHP是一种脚本语言最初产生动态网页设计 | ||||||||||||||||
PHP是一种脚本语言最初产生动态网页设计。它已发展到包括一个命令行界面可在独立的图形应用程序。虽然PHP最初Rasmus Lerdorf创建1995,PHP的主要实施现在由PHP集团生产和作为PHP的事实上的标准,因为没有正式的规范。PHP是免费软件,PHP许可下发布的,但是它是不符合GNU通用公共授权(GPL),由于对术语PHP的使用限制。PHP是一种广泛使用的通用脚本语言,特别适合于Web开发,可嵌入到HTML。它通常在Web服务器上运行PHP代码,以作为其输入和创建网页的输出。 它可以是百万的网站和1000000的Web服务器。PHP最初代表个人主页。它开始于1994作为一套通用网关接口的二进制文件由丹麦格陵兰Rasmus Lerdorf /程序员在C编程语言编写。Doodler最初创建这些个人主页工具更换小套Perl脚本,他一直用维护自己的个人主页。工具是用来执行任务,如显示他的é和é记录多少流量他的页面接收。他将这些二进制文件翻译他的形式创造PHP/FI,具有更多的功能。PHP/FI包括C语言编程实现,更能与数据库,使简单的建筑,动态Web应用程序。发布于1995年6月8日公开Lerdorf PHP加速bug定位和提高代码。这个版本被命名为PHP版本2已经有了基本的功能,PHP有今天。这包括像perl变量,形式处理,并且能够嵌入HTML。 语法是类似于Perl更有限的,简单的,不一致的。苏拉斯基Zeev和Andi特曼斯,在以色列理工学院两以色列开发商,重写了解析器在1997形成了PHP 3的基础上,改变语言的递归缩写名称PHP:超文本预处理器。开发团队正式发布PHP/FI 2十一月1997个月后测试。后来,PHP 3公开测试开始,而正式启动是在六月1998。苏拉斯基和特曼斯然后开始一个新的PHP的核心重写,1999生产Zend引擎。他们还成立了Zend技术在以色列拉马特甘。2000年5月22日,PHP 4,由Zend引擎1驱动,被释放。2004年7月13日,PHP 5的发布,由新的Zend引擎II供电。PHP 5中包括新的功能,如改进的支持面向对象编程,PHP数据对象扩展(它定义了一个轻量级的、一致的访问数据库的接口),和大量的性能改进。由PHP集团发布了最新的更新是年长的PHP版本4的代码分支。在八月,2008这一的最高版本是4.4.9。PHP 4是不再发展,也不会发布任何安全更新。2008,PHP 5成为唯一稳定的版本正在开发。后期静态绑定失踪已从PHP和将增加5.3版。PHP 6和PHP 5的开发是在。主要的变化包括register_globals,去除魔术引号,和安全模式。对于拆迁的原因是因为register_globals了安全漏洞,和魔术引号有不可预知性,是最好的避免。相反,转义字符,魔术引号可能与addslashes()功能取代,或者更恰当地逃避机制具体到数据库厂商本身一样mysql_real_escape_string() MySQL。PHP没有Unicode或多字节字符串的完整的原生支持;支持Unicode将包括在PHP 6。许多高知名度的开源项目不再支持PHP 4的新代码为2008年2月5日,由于该gophp5倡议,由一个PHP开发者促进从PHP 4到PHP 1397过渡联盟提供 它运行在32位和64位的环境中,但在Windows官方唯一的分布是32位,需要Windows 32位兼容模式被启用,而使用IIS在64位Windows环境。有一个第三方的分布可用64位的Windows。PHP是一种通用的脚本语言,特别适合于Web开发。一般在Web服务器上运行PHP代码,以作为其输入和创建网页的输出。它也可以用于命令行脚本和客户端的GUI应用程序。PHP可以部署在大多数Web服务器,多个操作系统和平台,可用于许多关系数据库管理系统。它是免费的,和PHP组为用户构建提供了完整的源代码,自定义和扩展自己的使用。PHP是作为一个过滤器,以输入从文件或流中包含文本和/或PHP指令和输出一个数据流;最常用 的输出将HTML。它可以自动检测用户的语言。从PHP 4,PHP解析器编译输入由Zend引擎产生的字节码处理,从而在其翻译的前身改进性能。 网络服务器(如SQL数据库),发送垃圾邮件或有助于DOS攻击使用的恶意软件,它可以安装在脆弱的服务器。这些漏洞大多不遵循最佳实践编程规则造成的:对语言本身或其核心库的技术安全缺陷不频繁。认识到程序员不可信任,一些语言包括污点检查自动检测输入验证诱使许多不足问题。这样的一个特征是正在开发的PHP。虽然它可能包括在未来版本中主流的PHP,其包含在过去已经拒绝了几次。PHP应用托管的服务器上需要小心注意应对这些安全风险。有先进的保护片如了Suhosin硬化斑块,特别设计的Web托管环境。安装PHP作为CGI二进制而不是作为Apache模块是为增加安全性的首选方法。相对于固定代码本身,PHP代码可以混淆使它难读而其余的功能。语法高亮的代码嵌入在htmlphp只能解析代码内的分隔符。 在分隔符都是直接发送到输出端不解析PHP。最常见的是 分隔符,分隔符,分别打开和关闭。分隔符也可。短标签可用于启动的PHP代码, 。这些标签是常用的,但像ASP风格标签(< % %和% >或< =),他们是不方便为他们可以在PHP配置被禁用。因为这个原因,短标签和ASP的风格标签的使用是气馁。这些分隔符的目的是将PHP代码从非PHP代码,包括HTML。变量以美元符号和类型不需要事先指定。不像函数和类的名称,变量名是大小写敏感的。两个双引号(“”)和文本字符串可以嵌入一个变量的值为字符串的能力。PHP将换行符作为一个自由的语言方式的空白(除非内部字符串引号),和语句都以分号结束。PHP有三种类型的注释语法:/ * * /作为块注释,和/或以及#用于内联注释。echo语句是一个设施,PHP提供了输出文本(例如,Web浏览器)。 关键字和语法,PHP是类似于大多数高级语言,C风格的语法。如果条件,for和while循环,函数返回在语法如C语言一样,C++,Java和Perl。PHP存储整数在依赖平台的范围。这个范围是典型的32位有符号整数。无符号整数转换值在一定情况下;这种行为是不同于其他的编程语言。整数变量可以指定使用十进制(正、负),八进制和十六进制符号。浮点数也存储在一个平台的具体范围。他们可以使用浮点表示法指定,科学记数法或形式。PHP有一个本地的布尔型,类似于Java和C++本地布尔类型。使用布尔类型转换规则,非零的值解释为假为真零,如Perl和C + +。无效的数据类型表示一个变量,没有价值。在空数据类型的唯一值为空。的“资源型”代表来自外部的资源的引用变量。这些通常是由从一个特定的扩展功能,只能进行功能相同的延伸;例子包括文件,图像,和数据库资源。数组可以包含任何类型的PHP可以处理,包括资源要素,对象,甚至其他阵列。为了保存在值列表和哈希与键和值,和两 可以混合在一起。PHP也支持字符串,可以使用单引号,双引号,或定界符。标准PHP库(SPL)试图解决标准问题,实现高效的数据访问接口和类。PHP有成百上千的基函数和数以千计的通过扩展。这些功能是有据可查的PHP网站,但不幸的是,内置的图书馆有各种各样的命名规则和不一致。PHP目前已经没有功能的线程编程。功能不是一流的功能,只能通过他们的名字——直接引用或变量包含的函数名称的动态。用户定义的函数可以创建在任何时间没有原型。功能可以在代码块中定义,允许运行时决定是否或不是一个函数应定义。调用的函数必须使用括号,随着零参数类的构造函数调用PHP新算子的例外,其中括号是可选的。PHP支持准匿名函数通过create_function()功能,虽然他们不是真正的匿名函数因为匿名函数是无名的,但功能只能通过名称引用,或间接通过 一个变量,在PHP function_name()美元。PHP获得一流的函数和闭包的支持。真正的匿名函数使用以下语法:功能getadder($ x){ return函数(Y元)使用(X){ return $ X + Y元;};} $加法器= getadder(8);echo $加法器(2);//打印“10”在这里,getadder()功能创建一个闭包的使用参数X元(关键词“使用”部队从语境变),其中,等更多细节参见RFC lambda函数和闭包。基本的面向对象编程的功能被添加在PHP 3和PHP 4的提高。[ 3 ]对象处理重写PHP 5,扩大功能,提高性能。在以前版本的PHP,物体像的原始类型的处理。这种方法的缺点是,整个对象被复制时,变量被分配或作为参数传递给方法。在新方法中,对象引用的处理,而不是由价值。PHP 5引入了私有成员变量和方法和保护,随着抽象类和最终类以及抽象方法和最终的方法。它还引入了一个标准的方式声明的构造函数和析构函数,类似于其他面向对象的语言如C + +,和一个标准的异常处理模型。此外,PHP 5添加接口,允许多个接口来实现。有专门的接口允许对象与交互运行时系统。对象实现ArrayAccess可以使用数组语法和对象实现迭代器或iteratoraggregate可以使用foreach语言构造。在发动机里有没有虚表的特征,所以静态变量绑定而不是在编译时引用的名字。如果开发人员创建一个副本,使用保留字复制一个对象,Zend引擎将检查__clone()方法已定义或不。如果不是,它会调用一个默认的__clone()将复制对象的属性。如果一个__clone()方法定义,那么它将负责设置在创建对象的必要性。为方便起见,该引擎将提供一个功能,进口的源对象的属性,使程序员可以开始
|