【PHP系列教程】(1)第一个PHP页面
一、预备知识:PHP环境的搭建 环境的搭建在前面已经给出了详细的说明,网址为:http://blog.csdn.net/rocket5725/archive/2009/12/28/5090489.aspx。 二、第一个PHP页面 在WEB服务器根目录下D:/Program Files/Apache Software Foundation/Apache2.2/htdocs下
一、预备知识:PHP环境的搭建
环境的搭建在前面已经给出了详细的说明,网址为:http://blog.csdn.net/rocket5725/archive/2009/12/28/5090489.aspx。
二、第一个PHP页面
在WEB服务器根目录下D:/Program Files/Apache Software Foundation/Apache2.2/htdocs下建立一个文件名为Hello.php,然后完成如下内容。
"; ?>在浏览器的地址栏里输入 URL 访问这个文件,在结尾加上“/hello.php”。如果您在本地开发,那么这个 URL 一般是 http://localhost/hello.php 或者 http://127.0.0.1/hello.php,当然这取决于 WEB 服务器的设置。(Apache 的配置文件是 httpd.conf)。如果所有的设置都正确,那么这个文件将被 PHP 解析,浏览器中将会输出如下结果:Hello World
该程序非常的简单,它仅仅只是利用了 PHP 的 echo() 语句显示了 Hello World。您一定不会满足与此。
以上例子的目的是为了显示 PHP 特殊标识符的格式。在这个例子中,我们用 来退出 PHP 模式。您可以根据您的需要在 HTML 文件中像这样开启或关闭 PHP 模式。
三、实用的脚本
现在让我们来编写一些更实用的脚本。我们将检查浏览页面的访问者用了什么类型的浏览器。要达到这个目的,我们需要检查用户的 agent 字符串,它是浏览器发送的 HTTP 请求的一部分。该信息被存储在一个变量中。在 PHP 中,变量总是以一个美元符开头。我们现在感兴趣的变量是 $_SERVER["HTTP_USER_AGENT"]。
1、要显示该变量,我们只需简单的进行如下操作:
该脚本的输出可能是:
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
PHP 有很多种不同类型的变量。在以上例子中我们打印了一个数组的元素。数组是一类非常有用的变量。
2、利用phpinfo()来显示所有预定义变量
如果您在您的浏览器中打开这个文件,您将看到关于 PHP 完整的信息,以及所有您可以使用的变量列表。
您可以在一个 PHP 标识中加入多个 PHP 语句,也可以建立一个代码块来做比简单的 echo 更多的事情。例如,如果我们需要检查 Internet Explorer,我们可以进行如下操作:
该脚本可能显示为:
You are using Internet Explorer
3、混合PHP与HTML模式
该脚本可能显示为:
strpos must have returned no-false
You are using Internet Explorer
和以上我们用一个 PHP 的 echo 语句来输出不同的是,我们跳出了 PHP 模式来直接写 HTML 代码。这里很值得注意的一点是,对于这两种情况而言,脚本的逻辑效率是相同的。在判断了 strpos() 函数的返回值是 TRUE 或是 FALSE,也就是判断了字符串 MSIE 是否被找到之后,最终只有一个 HTML 块被发送给浏览者。
四、处理表单
PHP 一个很有用的特点体现在它处理 PHP 表单的方式。您需要理解的非常重要的原理,是表单的任何元素都在您的 PHP 脚本中自动生效。
以下是一个简单的HTML表单:
该表单中并没有什么特殊的地方,其中没有使用任何特殊的标识符。当用户填写了该表单并点击了提交按钮,页面 action.php 将被调用。在该文件中,您可以加入如下内容用于打印来自表单的内容:
该脚本的输出可能是:
Hi Xue-Jamy.
You are 25 years old.
该脚本进行的工作应该已经很明显了,这儿并没有其它更复杂的内容。PHP 将自动为您设置 $_POST["name"] 和 $_POST["age"] 变量。在这之前我们使用了自动全局变量 $_SERVER,现在我们引入了自动全局变量 $_POST,它包含了所有的 POST 数据。请注意我们的表单提交数据的方法(method)。如果我们能使用了 GET 方法,那么表单中的信息将被储存到自动全局变量 $_GET 中。如果您并不关心请求数据的来源,您也可以用自动全局变量 $_REQUEST,它包含了所有 GET、POST、COOKIE 和 FILE 的数据。
五、在新版本的PHP中使用旧的PHP代码
现在,PHP 已经发展成为一种流行的脚本语言,您可以在很多公共的资源里找到您可以在您自己的脚本中重新利用的代码。PHP 语言的开发者为向下兼容性下了很多功夫,因此在新版本的 PHP 下,老版本的代码应该可以在不作任何改动的情况下(理想地)运行。不过实际上,我们还是必须对老的代码做一些改动。
有可能影响到老版本的代码的最重要的两点改动分别是:
(1) 取消了旧的 $HTTP_*_VARS 数组(在函数或者方法中他们原本是全局变量)。PHP 4.1.0 版本引入了如下自动全局数组变量: $_GET、$_POST、 $_COOKIE、$_SERVER、 $_FILE、$_ENV、$_REQUEST 以及 $_SESSION。 老的 $HTTP_*_VARS 数组,诸如 $HTTP_POST_VARS 等,从 PHP 3 就已经开始使用,它们仍然存在。 在 PHP 5.0.0 中,长的 PHP 预定义数组可以通过设置 register_long_arrays 来屏蔽。
(2) 外部变量不再默认得被注册为全局变量。也就是说,从 PHP 4.2.0 版本开始,$php.ini; 中的设置选项 register_globals 默认值变成了 off。我们建议您用以上提到的自动全局数组变量来访问这些值。但可能老的脚本、书籍以及教程都可能建立在该设置为 on 的基础上。如果该选项被设置为 on,则您便可以在 URL http://www.example.com/foo.php?id=42 中直接使用变量 $id。但不管被设置为 on 还是 off,$_GET['id'] 一直有效。