了解PHP是什么?

PHP 原本的简称为 Personal Home Page,是Rasmus Lerdorf 为了要维护个人网页,而用c语言开发的一些CGI工具程序集,来取代原先使用的 Perl 程序。最初这些工具程序用来显示 Rasmus Lerdorf 的个人履历,以及统计网页流量。他将这些程序和一些表单直译器整合起来,称为 PHP/FI。PHP/FI 可以和数据库连接,产生简单的动态网页程序。
Rasmus-LerdorfRasmus Lerdorf 在1995年6月8日将 PHP/FI 公开释出,希望可以透过社群来加速程序开发与寻找错误[6]。这个释出的版本命名为 PHP 2,已经有今日 PHP 的一些雏型,像是类似 Perl 的变量命名方式、表单处理功能、以及嵌入到 HTML 中执行的能力。程序语法上也类似 Perl,有较多的限制,不过更简单、更有弹性。

PHP 是一个应用范围很广的语言,特别是在网络程序开发方面。一般来说 PHP 大多在服务器端执行,透过执行 PHP 的程序码来产生网页提供浏览器读取,此外也可以用来开发命令行脚本程序和使用者端的GUI应用程序。PHP可以在许多的不同种的服务器、操作系统、平台上执行,也可以和许多数据库系统结合。使用 PHP 不需要任何费用,官方组织 PHP Group 提供了完整的程序源代码,允许使用者修改、编译、扩充来使用。

PHP包含了许多新特色,像是强化的面向对象功能、引入PDO(PHP Data Objects,一个存取数据库的延伸函数库)、以及许多效能上的增强。目前PHP 4已经不会继续更新,以鼓励用户转移到PHP 5。

2008 年PHP 5成为了PHP唯一的有在开发的PHP版本。将来的PHP 5.3将会加入Late static binding和一些其他的功能强化。PHP 6 的开发也正在进行中,主要的改进有移除register_globals、magic quotes 和 Safe mode的功能。

下面是当前支持的数据库:
Adabas D InterBase Solid dBase mSQL Sybase Empress MySQL Velocis FilePro Oracle Unix dbm Informix PostgreSQL

PHP的语法参考了Perl、C语言,而且可以整合在HTML之中,以下是一个简单的Hello World程序:

  1. <?php
  2. echo 'Hello World!';
  3. ?>

PHP剖析引擎只剖析之间的程序码,而不包含在之间的内容则会直接送出,所以可以用以下的方式来将PHP程序码嵌入在HTML之中:

  1. <?php
  2. //-PHP代码
  3. ?>
  4. html內容
  5. <?php
  6. //-PHP代码
  7. ?>

但是在判断语句中的HTML代码并不会被直接送出:

  1. <?php
  2. if (false) {
  3. ?>
  4. HTML Code
  5. <?php
  6. }
  7. ?>

PHP可以用三种注解的形式:C与C++所使用的“/*...*/”与“//”,和Perl的“#”。

类型
PHP主要有以下四种变量类型:

整数 (integer)       浮点数 (float)       布尔数 (boolean)         字串 (string)

两种复合类型:

阵列 (array) 物件 (object)

两种特殊类型

NULL 资源 (resource)

变量
PHP中,变量以“$”后接变量名称来表示。变量名称区分大小写。有效的变量名称以字母或底线开头,后接任意数目的字母、数字或底线。

面向对象
PHP从PHP 3开始有了基本的面向对象的特性,但直到PHP 5将面向对象部份重新改写之后,PHP的面向对象功能才比较完善。现在PHP可以说是一个有完整面向对象功能的语言。

函数库
主条目:
内建多样化的函数是PHP主要的特点之一,这些开放程序码的函数提供了各种不同的功能,例如档案处理、FTP、字串处理、等等。这些函数的使用方法和C语言相近(例如printf),这也是PHP广为流行的原因之一。

以下是PHP编程语言提供的函式库列表:

Apache BCMath Bzip2 Calendars CCVS COM ClibPDF cURL Cybercash DB2 dBase DBM dbx DB++ DOM XML .NET FileMaker Pro FrontBase filePro FriBiDi FTP Gettext GD Graphics Library GNU Multi-Precision Library Hyperwave iconv IMAP,POP3 and NNTP Informix Ingres II InterBase IRC LDAP Lotus Notes mailparse MCAL Mcrypt MCVE Mhash MIME Functions MS-SQL Ming mnoGoSearch mSQL MySQL Mowhawk muscat Ncurses ODBC Oracle OpenSSL Ovrimos SQL PDF PayFlow Pro PDO POSIX PostgreSQL Printer Pspell GNU Readline GNU Recode Regular expressions QT-Dom Semaphores SESAM Session Handling Shared memory SMTP SNMP Sockets SimpleXML SQLite Streams Sybase Token vpopmail WDDX Win32 API XML(Xpath) XML-RPC XSLT YAZ Yellow Pages / 网络资讯服务 (NIS) ZIP Zlib

除了内建的函数之外,PHP也提供了很多延伸函数库(extension),像是各种数据库连接函数、资料压缩函数、图形处理等等。有些延伸函数库需要从PECL(PHP Extension Community Library)取得。

源代码编码和加速

PHP 源代码是可以直接读取的,即使放到服务器上执行也是一样。虽然让PHP多了弹性,但相对的会造成安全危机和性能下降的问题。透过PHP编码器,可以保护 PHP的源代码不被读取(对商业软件来说特别有需求),也可以提升执行的效能。有许多公司或团体开发PHP的编码器,将PHP程序编译成字节码(byte code),再透过服务器上安装对应的程序来执行PHP脚本。
除了透过编码器加速之外,PHP还可以透过动态的快取机制来提升速度,加速工具有商业版的,例如Zend Platform,也有开放源代码的加速软件如eAccelerator、APC、XCache。

样板引擎
样 板引擎让PHP应用程序可以做逻辑和使用接口上的分离,让程序开发更容易进行,目前比较受欢迎的样板引擎是PHP官方开发的Smarty。不过样板引擎有 效能上的争议,因为PHP本身就是一个样板引擎,使用样板引擎反而变成“重新发明了轮子”(reinventing the wheel)。样板引擎最主要的好处就是让不懂PHP程序码的人也可以参与使用接口的开发,因为样板引擎的语言远比PHP简单。

您可以选择一种方式赞助本站

    A+
发布日期:2009年05月11日  所属分类:Linux
标签:

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: