2011-11-20 76 views
0

是否有一個PHP常量,從__FILE__自動刪除$_SERVER['DOCUMENT_ROOT']這個PHP常量是否存在?

因此,如果文檔根目錄爲:

/Applications/XAMPP/xamppfiles/htdocs 

而且__FILE__是:

/Applications/XAMPP/xamppfiles/htdocs/Project/application/controllers/index.php 

它返回:

/Project/application/controllers/index.php 
+0

你嘗試檢查'的var_dump($ _ SERVER)'的輸出?這是基本調試和學習幫助自己的第一步。 – meagar

回答

4

你可能想_SERVER['PHP_SELF']_SERVER['SCRIPT_NAME']

  • PHP_SELF:當前執行的腳本的文件名,與文件根。

  • SCRIPT_NAME:包含當前腳本的路徑。這對於需要指向自己的頁面很有用。 __FILE__常量包含當前(即包含)文件的完整路徑和文件名。

關於兩者之間的區別:

不過,我只注意到在php.general新聞組帖子裏有人問有什麼不同它們之間。在語義上,沒有任何;他們應該包含相同的信息。然而,從歷史和技術上講,都存在。 SCRIPT_NAME在CGI 1.1規範中定義,因此是標準。但是,並非所有的Web服務器都實際實現它,因此它不一定是便攜式的。另一方面,PHP_SELF直接由PHP實現,只要您使用PHP進行編程,將始終存在。

途經:http://mwop.net/blog/45-PHP_SELF-versus-SCRIPT_NAME

0
<?php 
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php'); 

echo $path_parts['dirname'], "\n"; 
echo $path_parts['basename'], "\n"; 
echo $path_parts['extension'], "\n"; 
echo $path_parts['filename'], "\n"; // since PHP 5.2.0 
?> 
+0

這將如何幫助? – str

2

也許你可以使用

$_SERVER['SCRIPT_NAME']; 

我不知道如果我理解正確的問題,你也可以Concat的根和文件

$_SERVER['DOCUMENT_ROOT'].$_SERVER['SCRIPT_NAME']; 
0

沒有這樣的預定義變量。

但是你可以很容易地從這兩得到它,利用作爲基本字符串操作功能,strlen()substr()