PHP简介
正如我们在前面提到的,PHP是一个服务器端的脚本语言。这个概念可能很难理解,特别是如果你以前只用过HTML和javascript来设计过网页时更是如此。一个服务器端的脚本程序与javascript在许多地方有点相像,两者都允许你在Web页面的HTML中插入一些程序(脚本)。其结果就是,这些脚本使你可以控制在浏览器窗口内会显示什么,这显然要比直接使用HTML要来得灵活得多。
javascript和PHP的关键的不同点是:当Web浏览器解释javascript时,包含这个脚本的Web页面已经被下载了,而对于象PHP这样的服务器端脚本程序来说,解释的工作是由服务器在将页面发出到浏览器之前完全的。解释工作完成后,Web页面中的PHP的代码将由脚本运行的结果所代替,浏览者看到的完全是标准的HTML文件。脚本是完全由服务器来处理的。这也就是它的命名的由来:服务器端脚本程序。
让我们再回头看看我们在第一章里建立的示例today.php:
| <HTML> <HEAD> <TITLE>Today's Date</TITLE> </HEAD> <BODY> |
这个程序中的绝大多数是采用HTML格式的。只有在<?php和 ?>中间的行是用PHP写的。<?php表示“开始PHP代码”,?> 表示“结束PHP代码”。Web服务器在将这个Web页面发送到请求它的浏览器之前会对这个两个标识符之前的所有内容进行处理,并将其转换成标准的HTML代码。浏览器接受到的页面将是这样的:
| <HTML> <HEAD> <TITLE>Today's Date</TITLE> </HEAD> <BODY> |
请注意,现在所有的PHP代码都没有被显示。它们被相应的标准的HTML所取代,能过这个例子,我们可以看到服务器端脚本的几个优势:
不存在浏览器兼容的问题。PHP脚本仅仅是由Web服务器来解释的,所以我们不必担心你使用的语言是否能被你的访问者的浏览器所支持。
可以访问服务器端的资源。在上面的例子中,我们在Web页面中放置了Web服务器的日期。而当我们使用的是javascript,要实现同样的功能,我们只能显示Web浏览器在上面运行的计算机的日期。这个例子还对于使用服务器端的资源还不是十分典型的,事实上我们可以很方便地插入一些其他的信息,而这些信息只能通过运行在服务器上的脚本来调用,例如,运行在Web服务器上的MySQL数据库中存储的信息。
简化了客户端的装载。javascript会明显降低Web页面的显示速度,因为在显示这个Web页面之前,浏览器首先得运行javascript脚本。而对于服务器端脚本来说,这种负担将由Web服务器独自承担。
基本的语法和命令
对于任何一个用过C、C++、Java、javascript、Perl或其他源自C的语言的人,PHP的语法都会让你觉得非常熟悉。一个PHP脚本包含一系列的命令(语句),Web服务器必须依次处理这些指令。与上面提到的其他语言一样,PHP语句也总是以分号(;)结束。
这是一个典型的PHP语句:
| echo("This is a <B>test</B>!"); |
这个语句调用了一个叫echo的内置函数,并传递给它这么一个字符串:“This is a <B>test</B>! ”。内置函数你可以理解为“不需要另外的说明PHP就能知道该怎么做”的事情。PHP有很多的内置函数,我们可以利用它们来做许多事,从发送e-mail到处理存储在数据库中的不同类型的数据都是它们的管辖范围。echo函数只是简单地将传递给它的文本插入到HTML页面的当前位置。你可以看看下面这个例子:
| <HTML> <HEAD> <TITLE>Simple PHP Example</TITLE> </HEAD> <BODY> |
如果你给这段代码起名为test.php(或者test.php3,如果你的Web主机还没有将.php文件配置为PHP脚本),并将它放置到你的Web服务器上,浏览器看到的将是这样的一页:
| <HTML> <HEAD> <TITLE>Simple PHP Example</TITLE> </HEAD> <BODY> |
请注意,包含HTML标识符(<B>和</B>)在内的所有文本都被正确地显示了出来。
你也许会感到疑惑,我们为什么要在这里使用括号和引号。引号在PHP中是用来标志字符串的开始和结束。括号有双重作用,首先,它指出echo是一个你想要调用的函数,其次,它标志了这个函数的参数的开始和结束。通过参数,你可以指挥你的函数去干什么。对于echo函数,我们只需要给它一个字符串,用来在页面上显示,但是我们将会看到有些函数有几个参数(在这种情况下,我们用逗号分开各个参数)。即使对于没有参数的函数,我们仍需要有括号,只不过在括号中间我们不必输入任何内容。
