当前位置: 首页 > 图文教程 > 网络编程 > PHP > 让我们来编写一些PHP实用的脚本

PHP
PHP 执行系统外部命令 system() exec() passthru()
最新的php 文件上传模型,支持多文件上传
php 静态页面中显示动态内容
数据库查询记录php 多行多列显示
谈PHP生成静态页面分析 模板+缓存+写文件
PHP 各种排序算法实现代码
PHP nl2br函数 将换行字符转成 <br>
php 分页原理详解
Discuz 模板语句分析及知识技巧
php win下Socket方式发邮件类
怎样去阅读一份php源代码
建站常用13种PHP开源CMS比较
php xml留言板 xml存储数据的简单例子
PHP 开源AJAX框架14种
PHP 替换模板变量实现步骤
PHP has encountered an Access Violation at 7C94BD02解决方法
php 正则匹配函数体
php 文件夹删除、php清除缓存程序
php download.php实现代码 跳转到下载文件(response.redirect)
PHP类(Class)入门教程

让我们来编写一些PHP实用的脚本


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 168 ::
收藏到网摘: n/a

现在让我们来编写一些更实用的脚本。我们将检查浏览页面的访问者用了什么类型的浏览器。要达到这个目的,我们需要检查用户的 agent 字符串,它是浏览器发送的 HTTP 请求的一部分。该信息被存储在一个变量中。在 PHP 中,变量总是以一个美元符开头。我们现在感兴趣的变量是 $_SERVER["HTTP_USER_AGENT"]。

注: $_SERVER 是一个特殊的 PHP 保留变量,它包含了 WEB 服务器提供的所有信息,被称为自动全局变量(或“超级全局变量”)。请查阅本手册“自动全局变量”的有关内容,以获取更多信息。这些特殊的变量是在 PHP 4.1.0 版本引入的。在这之前,我们使用 $HTTP_*_VARS 数组,如 $HTTP_SERVER_VARS。尽管现在已经不用了,但它们在新版本中仍然存在。

要显示该变量,我们只需简单地进行如下操作:

例子. 打印一个变量(数组元素)

<?php echo $_SERVER["HTTP_USER_AGENT"]; ?> 

该脚本的输出可能是:

Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

PHP 有很多种不同类型的变量。在以上例子中我们打印了一个数组的元素。数组是一类非常有用的变量。

$_SERVER 只是 PHP 自动全局化的变量之一。您可以查阅“保留变量”一节来查看这些变量的列表,或者也可以建立如下的文件来得到一个完整的列表:

例子. 利用 phpinfo() 来显示所有预定义变量

<?php phpinfo(); ?>
 
如果您在您的浏览器中打开这个文件,您将看到关于 PHP 完整的信息,以及所有您可以使用的变量列表。

您可以在一个 PHP 标识中加入多个 PHP 语句,也可以建立一个代码块来做比简单的 echo 更多的事情。例如,如果我们需要检查 Internet Explorer,我们可以进行如下操作:

例子. 结构控制与函数的使用

<?php
if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
    echo "You are using Internet Explorer<br />";
}
?>

该脚本的输出可能是:

You are using Internet Explorer<br />

在这里我们要介绍一些新的原理。我们用了一个 if 语句。如果您对 C 语言的基本语法比较熟悉,则您应该对此很熟悉,否则,您可能需要拿起任何一本 PHP 介绍性的书籍并阅读前面的两三个章节。

我们需要介绍的第二个原理,是对 strpos() 函数的调用。strpos() 是 PHP 的一个内建函数,其功能是在一个字符串中搜索另外一个字符串。例如我们现在需要在 $_SERVER["HTTP_USER_AGENT"](即所谓的 haystack) 变量中寻找 "MSIE"。如果在这个 haystack 中该字符串(即所谓的 needle)被找到,则函数返回 needle 在 haystack 中相对开头的位置;如果没有,则返回 FALSE。如果该函数没有返回 FALSE,则 if 会将条件判断为 TRUE 并运行其大括号 {} 内的代码;否则,则不运行这些代码。您可以自己尝试利用if、else以及其它的函数,例如 strtoupper() 和 strlen(),来建立类似的脚本。在本手册中,相关的页面也包含有范例。

以下我们进一步显示如何进出 PHP 模式,甚至是在一个 PHP 代码块的中间:

例子. 混和 HTML 和 PHP 模式

<?php
if (strpos($_SERVER["HTTP_USER_AGENT"], "MSIE") !== false) {
?>
<h3>strpos must have returned non-false</h3>
<center><b>You are using Internet Explorer</b></center>
<?php
} else {
?>
<h3>strpos must have returned false</h3>
<center><b>You are not using Internet Explorer</b></center>
<?php
}
?> 

该脚本的输出可能是:

<h3>strpos must have returned no-false</h3>
<center><b>You are using Internet Explorer</b></center>

和以上我们用一个 PHP 的 echo 语句来输出不同的是,我们跳出了 PHP 模式来直接写 HTML 代码。这里很值得注意的一点是,对于这两种情况而言,脚本的逻辑效率是相同的。在判断了 strpos() 函数的返回值是 TRUE 或是 FALSE,也就是判断了字符串 MSIE 是否被找到之后,最终只有一个 HTML 块被发送给浏览者。