首頁 > 後端開發 > php教程 > 實用的php腳本編寫

實用的php腳本編寫

怪我咯
發布: 2023-03-10 19:06:01
原創
5366 人瀏覽過

現在來寫一些更實用的腳本,例如檢查瀏覽頁面的訪客在使用什麼瀏覽器。要達到這個目的,需要檢查使用者的 agent 字串,它是瀏覽器發送的 HTTP 請求的一部分。該資訊被儲存在一個變數中。在 PHP 中,變數總是以美元符開頭。我們現在感興趣的變數是 $_SERVER['HTTP_USER_AGENT'] 。

PS:$_SERVER 是一個特殊的 PHP 保留變量,它包含了 web 伺服器提供的所有信息,被稱為超全域變數。請查閱本手冊「超全域變數」中的有關內容以取得更多資訊。這些特殊的變數是在 PHP » 4.1.0 版本引入的。在這之前使用 $HTTP_*_VARS 數組,如 $HTTP_SERVER_VARS 。儘管現在已經不用了,但它們在新版本中仍然存在(請參閱「舊程式碼」一節中的註解)。

要顯示該變量,只需簡單地進行如下操作:

Example #1 列印一個變數(數組元素)

<?php 
echo  $_SERVER [ &#39;HTTP_USER_AGENT&#39; ]; 
?>
登入後複製

這個腳本的輸出可能是:

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
登入後複製

PHP 有很多種不同類型的變數。在上述例子中我們列印了一個陣列的單元。數組是一類非常有用的變數。

$_SERVER 只是 PHP 自動全域化的變數之一。可以參考「預先定義變數」一節來查看這些變數的列表,或者也可以透過上節範例中 phpinfo() 函數的輸出來查看。

可以在一個 PHP 標識中加入多個 PHP 語句,也可以建立一個程式碼區塊來做比簡單的 echo 更多的事情。例如,如果需要識別Internet Explorer,可以進行如下操作:

Example #2 流程控制與函數的使用

<?php
if ( strpos ( $_SERVER [ &#39;HTTP_USER_AGENT&#39; ],  &#39;MSIE&#39; ) !==  FALSE ) {
    echo  &#39;正在使用 Internet Explorer。<br />&#39; ;
}
?>
登入後複製

該腳本的輸出可能是:

正在使用 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 程式碼區塊的中間:

Example #3 混合和HTML 和PHP 模式

<?php
if ( strpos ( $_SERVER [ &#39;HTTP_USER_AGENT&#39; ],  &#39;MSIE&#39; ) !==  FALSE ) {
?>
<h3>strpos() 肯定没有返回假 (FALSE)</h3>
<p>正在使用 Internet Explorer</p>
<?php
} else {
?>
<h3>strpos() 肯定返回假 (FALSE)</h3>
<center><b>没有使用 Internet Explorer</b></center>
<?php
}
?>
登入後複製

該腳本的輸出可能是:

<h3>strpos() 肯定没有返回假 (FALSE)</h3>
<p>正在使用 Internet Explorer</p>
登入後複製

和以上我們用一個PHP 的echo 語句來輸出不同的是,我們跳出了PHP 模式來直接寫HTML 程式碼。這裡很值得注意的一點是,對於這兩種情況而言,腳本的邏輯效率是相同的。在判斷了 strpos() 函數的回傳值是 TRUE 或是 FALSE ,也就是判斷了字串 'MSIE' 是否被找到之後,最終只有一個 HTML 區塊被傳送給瀏覽者。


以上是實用的php腳本編寫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板