php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之間的區(qū)別
更新時間:2009年09月05日 01:49:08 作者:
php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之間的區(qū)別
“PHP_SELF”
當前正在執(zhí)行腳本的文件名,與 document root 相關(guān)。舉例來說,在 URL 地址為 http://m.fzitv.net/test.php/foo.bar 的腳本中使用 $_SERVER['PHP_SELF'] 將會得到 /test.php/foo.bar 這個結(jié)果。__FILE__ 常量包含當前(例如包含)文件的絕對路徑和文件名。
“SCRIPT_NAME”
包含當前腳本的路徑。這在頁面需要指向自己時非常有用。__FILE__ 包含當前文件的絕對路徑和文件名(例如包含文件)。
主要的原因如像:$_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
找到更好的原因是:
今天在Dreamhost上安裝一套PHP程序時發(fā)現(xiàn)連接的地址都會多出一個cgi-system來,但是程序的config並沒有問題,查了查資料才發(fā)現(xiàn)是SCRIPT_NAME和PHP_SELF不同造成的問題。
通常在本機測試 $_SERVER['SCRIPT_NAME'] 跟 $_SERVER['PHP_SELF'] 大概看不出有什麼不同,因為大部分的PHP不是以CGI模式運行的。
但 DreamHost 上的 PHP 是以 CGI 方式運行,二者就有明顯不同的差異。
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)了一個說明。老外說的。
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
當前正在執(zhí)行腳本的文件名,與 document root 相關(guān)。舉例來說,在 URL 地址為 http://m.fzitv.net/test.php/foo.bar 的腳本中使用 $_SERVER['PHP_SELF'] 將會得到 /test.php/foo.bar 這個結(jié)果。__FILE__ 常量包含當前(例如包含)文件的絕對路徑和文件名。
“SCRIPT_NAME”
包含當前腳本的路徑。這在頁面需要指向自己時非常有用。__FILE__ 包含當前文件的絕對路徑和文件名(例如包含文件)。
主要的原因如像:$_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
找到更好的原因是:
今天在Dreamhost上安裝一套PHP程序時發(fā)現(xiàn)連接的地址都會多出一個cgi-system來,但是程序的config並沒有問題,查了查資料才發(fā)現(xiàn)是SCRIPT_NAME和PHP_SELF不同造成的問題。
通常在本機測試 $_SERVER['SCRIPT_NAME'] 跟 $_SERVER['PHP_SELF'] 大概看不出有什麼不同,因為大部分的PHP不是以CGI模式運行的。
但 DreamHost 上的 PHP 是以 CGI 方式運行,二者就有明顯不同的差異。
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)了一個說明。老外說的。
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的詳細參數(shù)與說明
- PHP $_SERVER詳解
- php $_SERVER當前完整url的寫法
- php $_SERVER["REQUEST_URI"]獲取值的通用解決方法
- PHP5下$_SERVER變量不再受magic_quotes_gpc保護的彌補方法
- 從PHP $_SERVER相關(guān)參數(shù)判斷是否支持Rewrite模塊
- PHP中$_SERVER的詳細參數(shù)與說明介紹
- php $_SERVER windows系統(tǒng)與linux系統(tǒng)下的區(qū)別說明
- php幾個預定義變量$_SERVER用法小結(jié)
- php中time()與$_SERVER[REQUEST_TIME]用法區(qū)別
- PHP中$_SERVER使用說明
相關(guān)文章
php關(guān)鍵字僅替換一次的實現(xiàn)函數(shù)
這篇文章主要介紹了php實現(xiàn)每個關(guān)鍵字僅需要替換一次,有時一個項目里面涉及到批量替換關(guān)鍵字的問題,本文針對控制替換次數(shù)進行研究,感興趣的小伙伴們可以參考一下2015-10-10
Windows2003 下 MySQL 數(shù)據(jù)庫每天自動備份
Windows2003 下 MySQL 數(shù)據(jù)庫每天自動備份...2006-12-12
php讀取csv文件后,uft8 bom導致在頁面上顯示出現(xiàn)問題的解決方法
以下是對php讀取csv文件后,uft8 bom導致在頁面上顯示出現(xiàn)問題的解決方法進行了詳細的分析介紹,需要的朋友可以過來參考下2013-08-08
使用GROUP BY的時候如何統(tǒng)計記錄條數(shù) COUNT(*) DISTINCT
在有g(shù)roup by的時候,如何統(tǒng)計結(jié)果記錄的數(shù)量?需要的朋友可以參考下。2011-04-04
PHP中mysqli_get_server_version()的實例用法
在本篇文章里小編給大家分享的是關(guān)于PHP中mysqli_get_server_version()用法以及相關(guān)知識點,需要的朋友們可以參考下。2020-02-02
實例講解通過PHP創(chuàng)建數(shù)據(jù)庫
在本篇文章里小編給大家分享了關(guān)于如何通過​PHP創(chuàng)建數(shù)據(jù)庫的知識點內(nèi)容,有需要的朋友們學習下。2019-01-01

