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://www.dbjr.com.cn/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://www.dbjr.com.cn/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幾個預(yù)定義變量$_SERVER用法小結(jié)
- php中time()與$_SERVER[REQUEST_TIME]用法區(qū)別
- PHP中$_SERVER使用說明
相關(guān)文章
php 來訪國內(nèi)外IP判斷代碼并實現(xiàn)頁面跳轉(zhuǎn)
最近做了公司網(wǎng)站的一個需求:按來訪人的IP來判斷他是進中文網(wǎng)站還是英文網(wǎng)站。2009-12-12php使用Jpgraph創(chuàng)建柱狀圖展示年度收支表效果示例
這篇文章主要介紹了php使用Jpgraph創(chuàng)建柱狀圖展示年度收支表效果,結(jié)合完整實例形式分析了Jpgraph創(chuàng)建柱狀圖的具體步驟與操作技巧,需要的朋友可以參考下2017-02-02php使用Image Magick將PDF文件轉(zhuǎn)換為JPG文件的方法
這篇文章主要介紹了php使用Image Magick將PDF文件轉(zhuǎn)換為JPG文件的方法,涉及php使用Image Magick擴展操作圖片的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-04-04PHP __autoload函數(shù)(自動載入類文件)的使用方法
在使用PHP的OO模式開發(fā)系統(tǒng)時,通常大家習慣上將每個類的實現(xiàn)都存放在一個單獨的文件里,這樣會很容易實現(xiàn)對類進行復用,同時將來維護時也很便利2012-02-02