實用的腳本現在來編寫一些更實用的腳本,比如檢查瀏覽頁面的訪問者在用什麼瀏覽器。要達到這個目的,需要檢查會員的 agent 字串,它是瀏覽器傳送的 HTTP 請求的一部分。該訊息被存儲在一個變量中。在 PHP 中,變量總是以一個美元符開頭。我們現在感興趣的變量是 $_SERVER['HTTP_USER_AGENT']。
要顯示該變量,只需簡單地進行如下動作:
PHP 有很多種不同類型的變量。在以上例子中我們列印了一個陣列的單元。陣列是一類非常有用的變量。 $_SERVER 只是 PHP 自動全局化的變量之一。可以查閱「保留變量」一節來檢視這些變量的清單,或是也可以通過上節例子中 phpinfo() 函數的輸出來檢視。 可以在一個 PHP 標識中加入多個 PHP 語句,也可以建立一個代碼塊來做比簡單的 echo 更多的事情。例如,若果需要識別 Internet Explorer,可以進行如下動作:
這裡要介紹一些新的原理。上面用了一個 if 語句。若果會員對 C 語系的基本語法比較熟悉,則應該對此很熟悉,否則,可能需要拿起任何一本 PHP 介紹性的書籍並閱讀前面的兩三個章節,或是也可以閱讀本手冊的「語系參考」一章。可以在 http://www.php.net/books.php 找到有關 PHP 的書籍的清單。 需要介紹的第二個原理,是對 strpos() 函數的呼叫。strpos() 是 PHP 的一個內建函數,其功能是在一個字串中搜尋另外一個字串。例如我們現在需要在 $_SERVER['HTTP_USER_AGENT'](即所謂的 haystack)變量中尋找 'MSIE'。若果在這個 haystack 中該字串(即所謂的 needle)被找到,則函數返回 needle 在 haystack 中相對開頭的位置;若果沒有,則返回 FALSE。若果該函數沒有返回 FALSE,則 if 會將條件判斷為 TRUE 並運行其花括號 {} 內的代碼;否則,則不運行這些代碼。可以自己嘗試利用 if,else 以及其它的函數,例如 strtoupper() 和 strlen(),來建立類似的腳本。在本手冊中關聯的頁面也包括有範例。若果對如何使用函數不是很確定,可以閱讀手冊中有關「如何閱讀函數定義」和「函數」的有關章節。 以下我們進一步顯示如何進出 PHP 模式,甚至是在一個 PHP 代碼塊的中間:
和以上我們用一個 PHP 的 echo 語句來輸出不同的是,我們跳出了 PHP 模式來直接寫 HTML 代碼。這裡很值得注意的一點是,對於這兩種情況而言,腳本的邏輯效率是相同的。在判斷了 strpos() 函數的返回值是 TRUE 或是 FALSE,也就是判斷了字串 'MSIE' 是否被找到之後,最終只有一個 HTML 塊被傳送給瀏覽者。 | ||||