做(zuò)自(zì)由與創造的先行(xíng)者

實用的腳本

PHP中文手冊

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

注意:

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

要(yào)顯示該變量,隻需簡單地(dì)進行(xíng)如(rú)下(xià)操作(zuò):

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

<?php

echo $_SERVER['HTTP_USER_AGENT'];

?>

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

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

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

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

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

示例 #2 流程控制與函數(shù)的使用

<?php

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

echo '正在使用 Internet Explorer。<br />';

}

?>

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

正在使用 Internet Explorer。<br />

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

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

網站建設開(kāi)發|APP設計開(kāi)發|小程序建設開(kāi)發
下(xià)一(yī)篇:處理表單
上(shàng)一(yī)篇:第一(yī)個 PHP 頁面