- 1. 電腦狀況監(jiān)視器(提供最實(shí)用的電腦狀態(tài)監(jiān)視) V 1....
- 2. uTorrentPortable(小巧實(shí)用的BT資源下載工具) 3....
- 3. XAMPP (Apache+MySQL+PHP+PERL) v1.7.2 Final for W
- 4. 五子牛股票走勢(shì)查詢(方便實(shí)用的股票行情查詢軟件) ...
- 5. BatteryInfoView(小巧實(shí)用的筆記本上網(wǎng)本電池狀態(tài)查...
- 6. ASP轉(zhuǎn)PHP工具(小巧簡(jiǎn)單的ASP轉(zhuǎn)PHP工具) V1.0 綠色...
- 7. word錯(cuò)誤修復(fù)工具(小巧實(shí)用的word修復(fù)工具) V1.0 簡(jiǎn)...
- 8. Browser Cleaner(小巧實(shí)用的上網(wǎng)記錄清理工具) V1...
- 9. 超級(jí)急救盤(pán)(方便實(shí)用的數(shù)據(jù)恢復(fù)工具) V2011.07.01...
- 10. 英特爾處理器標(biāo)識(shí)實(shí)用程序(英特爾cpu全面分析工具)...
實(shí)用的腳本 php實(shí)用的腳本程序
現(xiàn)在來(lái)編寫(xiě)一些更實(shí)用的腳本,比如檢查瀏覽頁(yè)面的訪問(wèn)者在用什么瀏覽器。要達(dá)到這個(gè)目的,需要檢查用戶的 agent 字符串,它是瀏覽器發(fā)送的 HTTP 請(qǐng)求的一部分。該信息被存儲(chǔ)在一個(gè)變量中。在 PHP 中,變量總是以一個(gè)美元符開(kāi)頭。我們現(xiàn)在感興趣的變量是 $_SERVER['HTTP_USER_AGENT']。
Note: $_SERVER 是一個(gè)特殊的 PHP 保留變量,它包含了 web 服務(wù)器提供的所有信息,被稱為超全局變量。請(qǐng)查閱本手冊(cè)“超全局變量”中的有關(guān)內(nèi)容以獲取更多信息。這些特殊的變量是在 PHP » 4.1.0 版本引入的。在這之前使用 $HTTP_*_VARS 數(shù)組,如 $HTTP_SERVER_VARS。盡管現(xiàn)在已經(jīng)不用了,但它們?cè)谛掳姹局腥匀淮嬖冢▍⒁?jiàn)“舊代碼”一節(jié)中的注解)。
要顯示該變量,只需簡(jiǎn)單地進(jìn)行如下操作:
Example #1 打印一個(gè)變量(數(shù)組元素)
echo $_SERVER['HTTP_USER_AGENT'];
?>
該腳本的輸出可能是:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
PHP 有很多種不同類(lèi)型的變量。在以上例子中我們打印了一個(gè)數(shù)組的單元。數(shù)組是一類(lèi)非常有用的變量。
$_SERVER 只是 PHP 自動(dòng)全局化的變量之一。可以查閱“保留變量”一節(jié)來(lái)查看這些變量的列表,或者也可以通過(guò)上節(jié)例子中 phpinfo() 函數(shù)的輸出來(lái)查看。
可以在一個(gè) PHP 標(biāo)識(shí)中加入多個(gè) PHP 語(yǔ)句,也可以建立一個(gè)代碼塊來(lái)做比簡(jiǎn)單的 echo 更多的事情。例如,如果需要識(shí)別 Internet Explorer,可以進(jìn)行如下操作:
Example #2 流程控制與函數(shù)的使用
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
echo '正在使用 Internet Explorer。<br />';
}
?>
該腳本的輸出可能是:
正在使用 Internet Explorer。<br />
這里要介紹一些新的原理。上面用了一個(gè) if 語(yǔ)句。如果用戶對(duì) C 語(yǔ)言的基本語(yǔ)法比較熟悉,則應(yīng)該對(duì)此很熟悉,否則,可能需要拿起任何一本 PHP 介紹性的書(shū)籍并閱讀前面的兩三個(gè)章節(jié),或者也可以閱讀本手冊(cè)的“語(yǔ)言參考”一章。
需要介紹的第二個(gè)原理,是對(duì) strpos() 函數(shù)的調(diào)用。strpos() 是 PHP 的一個(gè)內(nèi)置函數(shù),其功能是在一個(gè)字符串中搜索另外一個(gè)字符串。例如我們現(xiàn)在需要在 $_SERVER['HTTP_USER_AGENT'](即所謂的 haystack)變量中尋找 'MSIE'。如果在這個(gè) haystack 中該字符串(即所謂的 needle)被找到,則函數(shù)返回 needle 在 haystack 中相對(duì)開(kāi)頭的位置;如果沒(méi)有,則返回 FALSE。如果該函數(shù)沒(méi)有返回 FALSE,則 if 會(huì)將條件判斷為 TRUE 并運(yùn)行其花括號(hào) {} 內(nèi)的代碼;否則,則不運(yùn)行這些代碼?梢宰约簢L試?yán)?if,else 以及其它的函數(shù),例如 strtoupper() 和 strlen(),來(lái)建立類(lèi)似的腳本。在本手冊(cè)中相關(guān)的頁(yè)面也包含有范例。如果對(duì)如何使用函數(shù)不是很確定,可以閱讀手冊(cè)中有關(guān)“如何閱讀函數(shù)定義”和“函數(shù)”的有關(guān)章節(jié)。
以下我們進(jìn)一步顯示如何進(jìn)出 PHP 模式,甚至是在一個(gè) PHP 代碼塊的中間:
Example #3 混和 HTML 和 PHP 模式
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
?>
<h3>strpos() 肯定沒(méi)有返回假 (FALSE)</h3>
<p>正在使用 Internet Explorer</p>
<?php
} else {
?>
<h3>strpos() 肯定返回假 (FALSE)</h3>
<center><b>沒(méi)有使用 Internet Explorer</b></center>
<?php
}
?>
該腳本的輸出可能是:
<h3>strpos() 肯定沒(méi)有返回假 (FALSE)</h3> <p>正在使用 Internet Explorer</p>
和以上我們用一個(gè) PHP 的 echo 語(yǔ)句來(lái)輸出不同的是,我們跳出了 PHP 模式來(lái)直接寫(xiě) HTML 代碼。這里很值得注意的一點(diǎn)是,對(duì)于這兩種情況而言,腳本的邏輯效率是相同的。在判斷了 strpos() 函數(shù)的返回值是 TRUE 或是 FALSE,也就是判斷了字符串 'MSIE' 是否被找到之后,最終只有一個(gè) HTML 塊被發(fā)送給瀏覽者。
- 1. 實(shí)用的腳本 php實(shí)用的腳本程序
- 2. php測(cè)試頁(yè)面的建立
- 3. PHP配置環(huán)境要求 php運(yùn)行的先決條件
- 4. PHP 能做什么?PHP 功能,php作用
- 5. PHP 是什么?
- 6. IIS6上安裝MySQL,PHP,Zend,phpMyAdmin安裝
- 7. 動(dòng)態(tài)網(wǎng)頁(yè)編程語(yǔ)言中的三大帝國(guó)ASP.JSP.PHP之間的較...
- 8. 關(guān)于PHP Parse Error: syntax error, unexpected $...
- 9. PHP的date()獲得比當(dāng)前時(shí)間少八小時(shí)的解決方法
- 10. php判斷值是否為空的實(shí)例分析