php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之間的區(qū)別
更新時(shí)間:2009年09月05日 01:49:08 作者:
php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之間的區(qū)別
“PHP_SELF”
當(dāng)前正在執(zhí)行腳本的文件名,與 document root 相關(guān)。舉例來說,在 URL 地址為 http://www.dhdzp.com/test.php/foo.bar 的腳本中使用 $_SERVER['PHP_SELF'] 將會得到 /test.php/foo.bar 這個(gè)結(jié)果。__FILE__ 常量包含當(dāng)前(例如包含)文件的絕對路徑和文件名。
“SCRIPT_NAME”
包含當(dāng)前腳本的路徑。這在頁面需要指向自己時(shí)非常有用。__FILE__ 包含當(dāng)前文件的絕對路徑和文件名(例如包含文件)。
主要的原因如像:$_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
找到更好的原因是:
今天在Dreamhost上安裝一套PHP程序時(shí)發(fā)現(xiàn)連接的地址都會多出一個(gè)cgi-system來,但是程序的config並沒有問題,查了查資料才發(fā)現(xiàn)是SCRIPT_NAME和PHP_SELF不同造成的問題。
通常在本機(jī)測試 $_SERVER['SCRIPT_NAME'] 跟 $_SERVER['PHP_SELF'] 大概看不出有什麼不同,因?yàn)榇蟛糠值腜HP不是以CGI模式運(yùn)行的。
但 DreamHost 上的 PHP 是以 CGI 方式運(yùn)行,二者就有明顯不同的差異。
echo $_SERVER['SCRIPT_NAME']; // (/cgi-system/php.cgi)
echo $_SERVER['PHP_SELF']; // (/admin/test.php)
從http://lists.nyphp.org/pipermail/talk/2005-July/015339.html 發(fā)現(xiàn)了一個(gè)說明。老外說的。
SCRIPT_NAME solves all the problems mentioned
in this thread - it's just the script name, without any extra garbage
that might be tacked on by the user. PHP_SELF explicitly includes that
extra garbage, so solutions in this thread that involve stripping the
garbage off of PHP_SELF to make it safe are really, really missing the
point - just use SCRIPT_NAME instead. Please don't use FORM ACTION=”";
according to the spec, what the browser does with that is undefined, so
even if it works in current browsers, it might not work in future ones
當(dāng)前正在執(zhí)行腳本的文件名,與 document root 相關(guān)。舉例來說,在 URL 地址為 http://www.dhdzp.com/test.php/foo.bar 的腳本中使用 $_SERVER['PHP_SELF'] 將會得到 /test.php/foo.bar 這個(gè)結(jié)果。__FILE__ 常量包含當(dāng)前(例如包含)文件的絕對路徑和文件名。
“SCRIPT_NAME”
包含當(dāng)前腳本的路徑。這在頁面需要指向自己時(shí)非常有用。__FILE__ 包含當(dāng)前文件的絕對路徑和文件名(例如包含文件)。
主要的原因如像:$_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
找到更好的原因是:
今天在Dreamhost上安裝一套PHP程序時(shí)發(fā)現(xiàn)連接的地址都會多出一個(gè)cgi-system來,但是程序的config並沒有問題,查了查資料才發(fā)現(xiàn)是SCRIPT_NAME和PHP_SELF不同造成的問題。
通常在本機(jī)測試 $_SERVER['SCRIPT_NAME'] 跟 $_SERVER['PHP_SELF'] 大概看不出有什麼不同,因?yàn)榇蟛糠值腜HP不是以CGI模式運(yùn)行的。
但 DreamHost 上的 PHP 是以 CGI 方式運(yùn)行,二者就有明顯不同的差異。
echo $_SERVER['SCRIPT_NAME']; // (/cgi-system/php.cgi)
echo $_SERVER['PHP_SELF']; // (/admin/test.php)
從http://lists.nyphp.org/pipermail/talk/2005-July/015339.html 發(fā)現(xiàn)了一個(gè)說明。老外說的。
SCRIPT_NAME solves all the problems mentioned
in this thread - it's just the script name, without any extra garbage
that might be tacked on by the user. PHP_SELF explicitly includes that
extra garbage, so solutions in this thread that involve stripping the
garbage off of PHP_SELF to make it safe are really, really missing the
point - just use SCRIPT_NAME instead. Please don't use FORM ACTION=”";
according to the spec, what the browser does with that is undefined, so
even if it works in current browsers, it might not work in future ones
您可能感興趣的文章:
- PHP中$_SERVER的詳細(xì)參數(shù)與說明
- PHP $_SERVER詳解
- php $_SERVER當(dāng)前完整url的寫法
- php $_SERVER["REQUEST_URI"]獲取值的通用解決方法
- PHP5下$_SERVER變量不再受magic_quotes_gpc保護(hù)的彌補(bǔ)方法
- 從PHP $_SERVER相關(guān)參數(shù)判斷是否支持Rewrite模塊
- PHP中$_SERVER的詳細(xì)參數(shù)與說明介紹
- php $_SERVER windows系統(tǒng)與linux系統(tǒng)下的區(qū)別說明
- php幾個(gè)預(yù)定義變量$_SERVER用法小結(jié)
- php中time()與$_SERVER[REQUEST_TIME]用法區(qū)別
- PHP中$_SERVER使用說明
相關(guān)文章
php 采集書并合成txt格式的實(shí)現(xiàn)代碼
記得上次有過一個(gè)叫采集后的處理這個(gè)就是它的升級版本 連采再處理,合成一本書txt的。2009-03-03
php關(guān)鍵字僅替換一次的實(shí)現(xiàn)函數(shù)
這篇文章主要介紹了php實(shí)現(xiàn)每個(gè)關(guān)鍵字僅需要替換一次,有時(shí)一個(gè)項(xiàng)目里面涉及到批量替換關(guān)鍵字的問題,本文針對控制替換次數(shù)進(jìn)行研究,感興趣的小伙伴們可以參考一下2015-10-10
Windows2003 下 MySQL 數(shù)據(jù)庫每天自動備份
Windows2003 下 MySQL 數(shù)據(jù)庫每天自動備份...2006-12-12
php讀取csv文件后,uft8 bom導(dǎo)致在頁面上顯示出現(xiàn)問題的解決方法
以下是對php讀取csv文件后,uft8 bom導(dǎo)致在頁面上顯示出現(xiàn)問題的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下2013-08-08
使用GROUP BY的時(shí)候如何統(tǒng)計(jì)記錄條數(shù) COUNT(*) DISTINCT
在有g(shù)roup by的時(shí)候,如何統(tǒng)計(jì)結(jié)果記錄的數(shù)量?需要的朋友可以參考下。2011-04-04
PHP中mysqli_get_server_version()的實(shí)例用法
在本篇文章里小編給大家分享的是關(guān)于PHP中mysqli_get_server_version()用法以及相關(guān)知識點(diǎn),需要的朋友們可以參考下。2020-02-02
實(shí)例講解通過PHP創(chuàng)建數(shù)據(jù)庫
在本篇文章里小編給大家分享了關(guān)于如何通過​PHP創(chuàng)建數(shù)據(jù)庫的知識點(diǎn)內(nèi)容,有需要的朋友們學(xué)習(xí)下。2019-01-01

