在寫框架和項目時候我們經常要獲取絕對路徑,php有內置函數realpath(), 也可以寫個函數來實現這個功能
function getAbsolutePath($path) { $path = str_replace(array('/', '\\'), DIRECTORY_SEPARATOR, $path); $parts = array_filter(explode(DIRECTORY_SEPARATOR, $path), 'strlen'); $absolutes = array(); foreach ($parts as $part) { if ('.' == $part){ continue; } if ('..' == $part) { array_pop($absolutes); } else { $absolutes[] = $part; } } return DIRECTORY_SEPARATOR.ltrim(implode(DIRECTORY_SEPARATOR, $absolutes),DIRECTORY_SEPARATOR); }
laravel框架入口文件就有段引入文件目錄
$app = new Illuminate\Foundation\Application(
realpath(__DIR__.'/../')
);
測試下
echo getAbsolutePath(__DIR__.'/../').'<br>';
echo realpath(__DIR__.'/../');
注意一點 對於php內置函數realpath() 會對路徑判斷是否存在
比如
var_dump(realpath(__DIR__.'/images/addBtn1.png')) ; 這個返回false var_dump(realpath(__DIR__.'/images/addBtn.png')) ; 這個文件存在返回該路徑