php -- 取路徑:getcwd()、__DIR__、__FILE__ 的區別

getcwd() :顯示是 在哪個文件裏調用此文件 的目錄

__DIR__ :當前內容寫在哪個文件就顯示這個文件目錄

__FILE__ : 當前內容寫在哪個文件就顯示這個文件目錄+文件名

 

由此可見

getcwd()和 __DIR__ 返回的是文件所在的絕對路徑但是沒有文件自身的名字在內。

__FILE__則是返回的是文件所在的絕對路徑但是有文件自身的名字在內

 

以下是百度來的參考資料
在ch06中建立文件 test.php。目錄爲:ch06\test.php

內容如下:

複製代碼
<?php
$a= getcwd();
//變量a的值爲D:\php\zend6.1\ch6

$b=__FILE__;
//變量b的值爲D:\php\zend6.1\ch6\test.php

?>
複製代碼

 

下面在ch06項目下建立文件夾admincp文件夾。在admincp文件夾下建立文件fff.php。目錄爲:ch06\admincp\fff.php

代碼如下

<?php
include_once '../test.php';
echo $a;//變量a中的值是D:\php\zend6.1\ch6\admincp
echo '<pre>';
echo $b;//變量b中的值是D:\php\zend6.1\ch6\test.php
?>

由此可見,在另一個文件中包含test.php文件。在test.php文件中用getcwd()獲取的test.php的路徑變量a在包含之後發生變化。目錄結構加上了ffff.php的所在目錄admincp,所以·在用文件定位時__FILE__較好

舉例

複製代碼
<?php

define('PATH_ROOT',($PATH_ROOT=dirname(__FILE__))?$PATH_ROOT:'..');
$PATH_admincp=PATH_ROOT.'\admincp';
$PATH_picture=PATH_ROOT.'\pciture';
$PATH_admincp_include=$PATH_admincp.'\include';

?>

<?php
include_once dirname(__FILE__).'/../../path.php';
include_once PATH_ROOT."/con_ini.php";

?>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章