PHP 要取得現在的檔案 路徑 + 檔名, 可以用 PHP 的 Magic constants 來取, 使用 __FILE__ 就可以抓到, 其它可以再搭配 dirname()、basename() 來應用.
環境
/var/www/project/test.php
取的現在檔案、目錄、上層目錄
於 test.php 內, 要做取得路徑、目錄等, 可見下述:
取得 路徑 + 檔名 (要取得 /var/www/project/test.php)
echo __FILE__;
取得 檔名 (要取得 test.php)
- echo basename(__FILE__);
取得 不含附檔名的檔名 (要取得 test)
- echo basename(__FILE__, '.php');
取得 到此目錄前的完整 PATH, 不含檔名 (要取得 /var/www/project)
echo dirname(__FILE__);
取得 到上層目錄前的完整 PATH (要取得 /var/www)
echo dirname(dirname(__FILE__));
應用
同理, 於網址也可以做同樣的事, 此為 CakePHP 的網址: http://www.example.com/myweb/cake/news/view/1, 希望取得 http://www.example.com/myweb/cake 該如何做?
echo dirname(dirname(dirname('http://www.example.com/myweb/cake/news/view/1')));
- 註: 這個方法只是 dirname() 直接拿來應用, CakePHP 應該有更簡易的抓法, 沒去研究就是了. Orz..