一 简介
1. PHP是什么?
PHP:Hypertext Preprocessor,超文本预处理器的缩写,是一种被广泛应用的开放源代码的多用途脚本语言,他可嵌入到HTML中,尤其适合WEB开发。如例:
例子 1-1. 一个介绍性的范例
<html> |
PHP代码是运行在服务器端的,如果在服务器上编写了如上代码,则运行该脚本后,客户端就能接收到结果,但他们无法得知其背后的代码是如何运作的。
2. PHP能做什么?
PHP能做任何事。由于PHP主要是用于服务器的脚本程序,因此可以用PHP来完成任何其他CGI程序能够完成的任务,但PHP的功能远不局限于此。
PHP主要用于以下三个领域:
l 服务端脚本:这是PHP最传统也是最主要的目标领域。但需要具体以下三点:PHP解析器、Web服务器和Web浏览器。
l 命令行脚本:这种方式仅需要PHP解析器来执行。
l 编写桌面应用程序。
PHP能够用在所有的主流操作系统上,如:Linux、Unix的各种变种、Microsoft Windows、Mac OS X、RISC OS等,同时,PHP支持大多数的Web服务器。
因此,PHP可以比较自由的选择操作系统和Web服务器。同时,还可以在开发时选择使用面向过程和面向对象,或者两种混合的方式来开发(PHP5引入了完全的对象模型)。
PHP并不局限于输出HTML,还能被用来动态的输出图像、PDF文件和Flash动画,还能够非常简便的输出文本。
PHP最强大的特征之一是他能支持很大范围的数据库类型,目前PHP支持的数据库有:
Adabas D | InterBase | PostgreSQL |
dBase | FrontBase | SQLite |
Empress | mSQL | Solid |
FilePro(只读) | Direct MS-SQL | Sybase |
Hyperwave | MySQL | Velocis |
IBM DB2 | ODBC | Unix dbm |
Informix | Oracle(OCI7 和 OCI8) | |
Ingres | Ovrimos |
同时,PHP还有一个DBX扩展库使得可以自由的使用该扩展库支持的任何数据库。另外,PHP还支持ODBC,因此可以连接任何其他支持该世界标准的数据库。
PHP还支持利用诸如LDAP、IMAP、SNMP、NNTP、POP3、HTTP、COM(Windows环境)等不计其数的协议的服务,还可以开放原始网络端口,使得任何其他的协议能够协同工作。PHP支持和所有Web开发语音之间的WDDX复杂数据交换。
PHP具有极其有效的文本处理特性,支持从POSIX扩展或者Perl正则表达式到XML文档解析。
二 简明教程
1. 需要些什么?
在大部分的服务器上,.php结尾的文件是PHP的默认扩展名。建立.php文件,并把他们放置到Web目录中,服务器将自动解析这些文件。不用编译任何东西,也不用安装任何其他的工具,仅仅只需把这些使用了PHP的文件想象成简单的HTML文件,其中只不过多了一种新的标识符。
若希望在本地机器上开发,则需要安装一个诸如Apache的Web服务器,当然还有PHP。可能还希望安装一个数据库,如MySQL。
2. 第一个PHP页面
在Web服务器根目录下(DOCUMENT_ROOT)下建立一个文件名为hello.php,然后完成如下内容:
例子 2-1. 第一个 PHP 脚本:hello.php
<html> |
在浏览器的IE栏里输入Web服务器的URL以访问这个文件,本地开发则如:http://localhost/hello.php或者http://127.0.0.1/hello.php。如果所有设置均正确,则该php文件将被解析,浏览器中将会输出如下结果:
<html>
<head>
<title>PHP 测试</title>
</head>
<body>
<p>Hello World</p>
</body>
</html>
在这个例子中,<?php 表示PHP标识符的起始,中间是PHP语句,最好通过一个终止符 ?> 来退出PHP模式。
若没有得到任何的输出,或者浏览器弹出了下载框,或者浏览器以文本方式显示了源文件,可能的原因是服务器还没有支持PHP,或者没有正确的配置。
一个著名的PHP脚本是:
<?php phpinfo(); ?>
3. 实用的脚本
在PHP中,变量总是以一个美元符开头,如$_SERVER[‘HTTP_USER_AGENT’]。$_SERVER是一个特殊的PHP保留变量,他包含了Web服务器提供的所有信息,被称为自动全局变量(或“超全局变量”。)要显示浏览页面的访问者在用什么浏览器,只需执行如下操作:
<?php echo $_SERVER[‘HTTP_USER_AGENT’]; ?>
即可。
可以在PHP标识中加入多个PHP语句:
<?php
if (strpos($_SERVER[‘HTTP_USER_AGENT’],’MSIE’) !== FALSE)
{
Echo ‘正在使用 Internet Explorer <br />’;
}
?>
该脚本的输出可能是:
正在使用 Internet Explorer <br />
说明:strpos()函数是PHP的一个内置函数,其功能是在一个字符串中搜索另外一个字符串,如果没有则返回FALSE。
例:混合HTML和PHP模式
<?php
if (strops($_SERVER[‘HTTP_USER_AGENT’],’MSIE’) !== FALSE)
{
?>
<h3>strops() 肯定没有返回假(FALSE)</h3>
<p>正在使用Internet Explorer</p>
<?php
}
else
{
?>
<h3>strops() 肯定返回假(FALSE)</h3>
<center><b>没有使用Internet Explorer</b></center>
<?php
}
?>
该脚本的输出可能是:
<h3>strops() 肯定没有返回假(FALSE)</h3>
<p>正在使用Internet Explorer</p>
4. 处理表单
PHP一个很有用的特点体现在它处理PHP表单的方式(表单的任何元素都在PHP脚本中自动生效)。一个HTML表单的范例:
<from action = “action.php” method = “post”>
<p>姓名:<input type = “text” name = “name” /></p>
<p>年龄:<input type = “text” name = “age” /></p>
<p><input type = “submit” /></p>
</from>
当用户填写了该表单并点击了提交按钮时,页面action.php将被调用。在该文件中,若加入如下内容:
你好,<?php ehco $_POST[‘name’]; ?>。
你 <?php echo $_POST[‘age’]; ?> 岁了。
由于PHP将自动设置$_POST[‘name’]和$_POST[‘age’]变量,则该脚本的输出可能是:
你好,Sco_field。你 26 岁了。
注:自动全局变量$_POST包含了所有的POST数据。