PHP可以使用魔術常量FILE來擷取當前檔案的絕對路徑,而不管當前的檔案是否是被其他檔案包含的,這在很多情況下是非常有用的,但有時當我們進行讀寫檔案之類的操作時,相對的是當前指令碼的工作目錄,也就是入口php檔案的目錄,此時可以採用php提供的另一個函數 getcwd()來擷取
看下面兩個例子
在ch06中建立檔案 test.php內容如下
<?php$a= getcwd();//變數a的值為D:\php\zend6.1\ch6$b=FILE;//變數b的值為D:\php\zend6.1\ch6\test.php?>
由此可見getcwd()返回的是檔案所在的絕對路徑但是沒有檔案自身的名字在內。FILE則是返回的是檔案所在的絕對路徑但是有檔案自身的名字在內
下面在ch06項目下建立檔案夾admincp檔案夾。在admincp檔案夾下建立檔案fff.php。代碼如下
<?phpinclude_once '../test.php';echo $a;//變數a中的值是D:\php\zend6.1\ch6\admincpecho '<pre>';echo $b;//變數b中的值是D:\php\zend6.1\ch6\test.php?>
由此可見,在另一個檔案中包含test.php檔案。在test.php檔案中用getcwd()擷取的test.php的路徑變數a在包含之後發生變化。目錄結構加上了ffff.php的所在目錄admincp,所以·在用檔案定位時FILE較好
舉例
<?phpdefine('PATH_ROOT',($PATH_ROOT=dirname(FILE))?$PATH_ROOT:'..');$PATH_admincp=PATH_ROOT.'\admincp';$PATH_picture=PATH_ROOT.'\pciture';$PATH_admincp_include=$PATH_admincp.'\include';?>
<?phpinclude_once dirname(FILE).'/../../path.php';include_once PATH_ROOT."/con_ini.php";?>