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

<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 160x600, 创建于 08-4-23MSDN */ google_ad_slot = "4367022601"; google_ad_width = 160; google_ad_height = 600; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

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

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

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

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

<?PHPecho$_SERVER["HTTP_USER_AGENT"];?> 

脚本的输出可能是:

Mozilla/4.0(compatible;MSIE5.01;WindowsNT5.0)

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

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

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

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

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

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

<?PHP
if(strstr($_SERVER["HTTP_USER_AGENT"],"MSIE")){
   echo"YouareusingInternetExplorer<br/>";
}
?>

脚本的输出可能是:

YouareusingInternetExplorer<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>strposmusthavereturnednon-false</h3>
<center><b>YouareusingInternetExplorer</b></center>
<?PHP
}else{
?>
<h3>strposmusthavereturnedfalse</h3>
<center><b>YouarenotusingInternetExplorer</b></center>
<?PHP
}
?> 

脚本的输出可能是:

<h3>strposmusthavereturnedno-false</h3>
<center><b>YouareusingInternetExplorer</b></center>

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

<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 160x600, 创建于 08-4-23MSDN */ google_ad_slot = "4367022601"; google_ad_width = 160; google_ad_height = 600; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
阅读更多
个人分类: 网络技术
上一篇七种缓存使用武器为网站应用和访问加速
下一篇加速动态网站MySQL索引分析和优化
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭