做自(zì)由與創造的先行者

實用(yòng)的腳本

PHP中文(wén)手冊

現(xiàn)在來(lái)編寫一些(xiē)更實用(yòng)的腳本,比如檢查浏覽頁面的訪問者在用(yòng)什(shén)麽浏覽器。要達到(dào)這(zhè)個目的,需要檢查用(yòng)戶的 agent 字符串,它是浏覽器發送的 HTTP 請(qǐng)求的一部分。該信息被存儲在一個變量中。在 PHP 中,變量總是以一個美(měi)元符開(kāi)頭。我們現(xiàn)在感興趣的變量是 $_SERVER['HTTP_USER_AGENT']。

注意:

$_SERVER 是一個特殊的 PHP 保留變量,它包含了(le) web 服務器提供的所有信息,被稱爲超全局變量。請(qǐng)查閱本手冊“超全局變量”中的有關内容以獲取更多信息。

要顯示該變量,隻需簡單地進行如下(xià)操作(zuò):

示例 #1 打印一個變量(數組元素)

<?php

echo $_SERVER['HTTP_USER_AGENT'];

?>

該腳本的輸出可能(néng)是:

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

PHP 有很(hěn)多種不同類型的變量。在以上(shàng)例子中我們打印了(le)一個數組的單元。數組是一類非常有用(yòng)的變量。

$_SERVER 隻是 PHP 自(zì)動全局化的變量之一。可以查閱“預定義變量”一節來(lái)查看(kàn)這(zhè)些(xiē)變量的列表,或者也(yě)可以通過上(shàng)節例子中 phpinfo() 函數的輸出來(lái)查看(kàn)。

可以在一個 PHP 标識中加入多個 PHP 語句,也(yě)可以建立一個代碼塊來(lái)做比簡單的 echo 更多的事(shì)情。例如,如果需要識别 Internet Explorer,可以進行如下(xià)操作(zuò):

示例 #2 流程控制與函數的使用(yòng)

<?php

if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {

echo '正在使用(yòng) Internet Explorer。<br />';

}

?>

該腳本的輸出可能(néng)是:

正在使用(yòng) Internet Explorer。<br />

這(zhè)裏要介紹一些(xiē)新的原理(lǐ)。上(shàng)面用(yòng)了(le)一個 if 語句。如果用(yòng)戶對(duì) C 語言的基本語法比較熟悉,則應該對(duì)此很(hěn)熟悉,否則,可能(néng)需要拿起任何一本 PHP 介紹性的書籍并閱讀前面的兩三個章節,或者也(yě)可以閱讀本手冊的“語言參考”一章。

需要介紹的第二個原理(lǐ),是對(duì) strpos() 函數的調用(yòng)。strpos() 是 PHP 的一個内置函數,其功能(néng)是在一個字符串中搜索另外(wài)一個字符串。例如我們現(xiàn)在需要在 $_SERVER['HTTP_USER_AGENT'](即所謂的 haystack)變量中尋找 'MSIE'。如果在這(zhè)個 haystack 中該字符串(即所謂的 needle)被找到(dào)(“草裏尋針”),則函數返回 needle 在 haystack 中相對(duì)于開(kāi)頭的位置;如果沒有,則返回 false。如果該函數沒有返回 false,則 if 會(huì)将條件判斷爲 true 并運行其花(huā)括号 {} 内的代碼;否則,則不運行這(zhè)些(xiē)代碼。可以自(zì)己嘗試利用(yòng) if,else 以及其它的函數如 strtoupper() 和(hé) strlen() 來(lái)建立類似的腳本。在本手冊中相關的頁面也(yě)包含有範例。如果對(duì)如何使用(yòng)函數不是很(hěn)确定,可以閱讀手冊中有關“如何閱讀函數的定義”和(hé)“函數”的有關章節。

網站(zhàn)建設開(kāi)發|APP設計(jì)開(kāi)發|小(xiǎo)程序建設開(kāi)發
下(xià)一篇:處理(lǐ)表單
上(shàng)一篇:第一個 PHP 頁面