请注意这个范例和其它用C或Perl语言写的脚本之间的区别——与用大量的命令来编写程" />
文档库 最新最全的文档下载
当前位置:文档库 › PHP简介

PHP简介

PHP简介
PHP简介

PHP(“PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到HTML中,尤其适合web 开发。

以上是一个简单的回答,不过这是什么意思呢?请看如下例子:

Example #1 一个介绍性的范例

Example

echo "Hi, I'm a PHP script!";

?>

请注意这个范例和其它用C 或Perl 语言写的脚本之间的区别——与用大量的命令来编写程序以输出HTML 不同的是,我们用PHP 编写了一个HTML 脚本,其中嵌入了一些代码来做一些事情(例如,在本例中输出了一些文本)。PHP 代码被包含在特殊的起始符和结束符中,使得可以进出“PHP 模式”。

和客户端的JavaScript 不同的是,PHP 代码是运行在服务端的。如果在服务器上建立了如上例类似的代码,则在运行该脚本后,客户端就能接收到其结果,但他们无法得知其背后的代码是如何运作的。甚至可

以将web 服务器设置成让PHP 来处理所有的HTML 文件,这么一来,用户就无法得知服务端到底做了什么。

使用PHP 的一大好处是它对于初学者来说极其简单,同时也给专业的程序员提供了各种高级的特性。当看到PHP 长长的特性列表时,请不要害怕。可以很快的入门,只需几个小时就可以自己写一些简单的脚本。

尽管PHP 的开发是以服务端脚本为目的,但事实上其功能远不局限与此。请继续读后面的章节,在“PHP 能做什么”一节中将获得更多的信息。如果对web 编程感兴趣,也可以阅读简明教程。

服务端脚本。这是PHP 最传统,也是最主要的目标领域。开展这项工作需要具备以下三点:PHP 解析器(CGI 或者服务器模块)、web 服务器和web 浏览器。需要在运行web 服务器时,安装并配置PHP,然后,可以用web 浏览器来访问PHP 程序的输出,即浏览服务端的PHP 页面。如果只是实验PHP 编程,所有的这些都可以运行在自己家里的电脑中。请查阅安装一章以获取更多信息。

?命令行脚本。可以编写一段PHP 脚本,并且不需要任何服务器或者浏览器来运行它。通过这种方式,仅仅只需要PHP 解析器来执行。

这种用法对于依赖cron(Unix 或者Linux 环境)或者Task

Scheduler(Windows 环境)的日常运行的脚本来说是理想的选择。

这些脚本也可以用来处理简单的文本。请参阅PHP 的命令行模式以获取更多信息。

?编写桌面应用程序。对于有着图形界面的桌面应用程序来说,PHP 或许不是一种最好的语言,但是如果用户非常精通PHP,并且希望在客户端应用程序中使用PHP 的一些高级特性,可以利用PHP-GTK 来编写这些程序。用这种方法,还可以编写跨平台的应用程序。

PHP-GTK 是PHP 的一个扩展,在通常发布的PHP 包中并不包含它。如果对PHP-GTK 感兴趣,请访问其?网站以获取更多信息。

PHP 能够用在所有的主流操作系统上,包括Linux、Unix 的各种变种(包括HP-UX、Solaris 和OpenBSD)、Microsoft Windows、Mac OS X、RISC OS 等。今天,PHP已经支持了大多数的web 服务器,包括Apache、Microsoft Internet Information Server

(IIS)、Personal web Server(PWS)、Netscape 以及iPlant server、Oreilly Website Pro Server、Caudium、Xitami、

OmniHTTPd 等。对于大多数的服务器,PHP 提供了一个模块;还有一些PHP 支持CGI 标准,使得PHP 能够作为CGI 处理器来工作。

综上所述,使用PHP,可以自由地选择操作系统和web 服务器。同时,还可以在开发时选择使用面对过程和面对对象,或者两者混和的方

式来开发。尽管PHP 4 不支持OOP 所有的标准,但很多代码仓库和大型的应用程序(包括PEAR 库)仅使用OOP 代码来开发。PHP 5 弥补了PHP 4 的这一弱点,引入了完全的对象模型。

使用PHP,并不局限于输出HTML。PHP 还能被用来动态输出图像、PDF 文件甚至Flash 动画(使用libswf 和Ming)。还能够非常简便的输出文本,例如XHTML 以及任何其它形式的XML 文件。PHP 能够自动生成这些文件,在服务端开辟出一块动态内容的缓存,可以直接把它们打印出来,或者将它们存储到文件系统中。

PHP 最强大最显著的特性之一,是它支持很大范围的数据库。用户会发现利用PHP 编写数据库支持的网页简单得难以置信。目前,PHP 支持如下数据库:

?Adabas D

?dBase

?Empress

?FilePro(只读)

?Hyperwave

?IBM DB2

?Informix

?Ingres

?InterBase

?FrontBase

?mSQL

?Direct MS-SQL

?MySQL

?ODBC

?Oracle(OCI7 和OCI8)

?Ovrimos

?PostgreSQL

?SQLite

?Solid

?Sybase

?Velocis

?Unix dbm

同时还有一个叫做PDO 的数据库抽象扩展库使得可以自由地使用该扩展库支持的任何数据库。另外,PHP 还支持ODBC,即Open Database Connection Standard(开放数据库连接标准),因此可以连接任何其它支持该世界标准的数据库。

PHP 还支持利用诸如LDAP、IMAP、SNMP、NNTP、POP3、HTTP、COM(Windows 环境)等不计其数的协议的服务。还可以开放原始网络端口,使得任何其它的协议能够协同工作。PHP 支持和所有web 开发语言之间的WDDX 复杂数据交换。关于相互连接,PHP 已经支持了对Java 对象的即时连接,并且可以将他们自由的用作PHP 对象。甚至可以用我们的CORBA 扩展库来访问远程对象。

PHP 具有极其有效的文本处理特性,支持从POSIX 扩展或者Perl 正则表达式到XML 文档解析。为了解析和访问XML 文档,PHP 4 支持SAX 和DOM 标准,也可以使用XSLT 扩展库来转换XML 文档。PHP 5 基于强健的libxm2 标准化了所有的XML 扩展,并添加了SimpleXML 和XMLReader 支持,扩展了其在XML 方面的功能。

另外,还有很多其它有趣的扩展库。例如mnoGoSearch 搜索引擎函数、IRC 网关函数、多种压缩工具(gzip、bz2、zip)、日历转换、翻译……

由于在这里无法列出PHP 所有的特性和可提供的便利,请参阅安装以及函数参考有关章节以获取关于这里提到的扩展库更多的信息。

二、基本语法

当PHP 解析一个文件时,会寻找开始和结束标记,标记告诉PHP 开始和停止解释其中的代码。此种方式的解析可以使PHP 嵌入到各种不同的文档中,凡是在一对开始和结束标记之外的内容都会被PHP 解析器忽略。大多数情况下PHP 都是嵌入在HTML 文档中的,如下例所示。

This is going to be ignored.

This will also be ignored.

还可以用更高级的结构:

Example #1 高级分离术

if ($expression) {

?>

This is true.

} else {

?>

This is false.

}

?>上例可正常工作,因为当PHP 碰到结束标记?> 时,就简单地将

)直到碰到下一个开始标记为止。当然,上面的例子很做作,但是对输出大块的文本而言,脱离PHP 解析模式通常比将所有内容用echo()或者print()输出更有效率。

可以在PHP 中使用四对不同的开始和结束标记。其中两种,

总是可用的。另两种是短标记和 ASP 风格标记,可以在php.ini配置文件中打开或关闭。尽管有些人觉得短标记和 ASP 风格标记很方便,但移植性较差,通常不推荐。

Note:

此外注意如果将PHP 嵌入到XML 或XHTML 中则需要使用

以保持符合标准。

Example #2 PHP 开始和结束标记

1.

2.

3.

This is a shortcut for ""

4. <% echo 'You may optionally use ASP-style tags'; %>

<%= $variable; # This is a shortcut for "<% echo . . ." %>

上例中的1 和2 总是可用的,其中1 是最常用,并建议使用的。短标记(上例3)仅在通过php.ini配置文件中的指令

short_open_tag 打开后才可用,或者在PHP 编译时加入

了--enable-short-tags选项。

ASP 风格标记(上例4)仅在通过php.ini配置文件中的指令

asp_tags 打开后才可用。

Note:

在以下情况应避免使用短标记:开发需要发行的程序或者库,或者在用户不能控制的服务器上开发。因为目标服务器可能不支持短标记。为了代码的移植及发行,确保不要使用短标记。

PHP 支持C,C++ 和Unix Shell 风格(Perl 风格)的注释。例如:

echo "This is a test"; // This is a one-line c++ style comment /* This is a multi line comment

yet another line of comment */

echo "This is yet another test";

echo 'One Final Test'; # This is a one-line shell-style comment ?>

单行注释仅仅注释到行末或者当前的PHP 代码块,视乎哪个首先出现。这意味着在// ... ?>或者# ... ?>之后的HTML 代码将被显示出来:?> 跳出了PHP 模式并返回了HTML 模式,//或#并不能影响到这一点。如果启用了asp_tags 配置选项,其行为

和// %>或# %>相同。不过,标记在单行注释中不会跳出PHP 模式。

This is an example.

The header above will say 'This is an example'.

C 风格的注释在碰到第一个*/时结束。要确保不要嵌套C 风格的注释。试图注释掉一大块代码时很容易出现该错误。

/*

echo "This is a test"; /* This comment will cause a problem */ */

?>

相关文档