PHP 如何取得 現在檔案的目錄 與 上層目錄

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..

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

在〈PHP 如何取得 現在檔案的目錄 與 上層目錄〉中有 7 則留言

  1. 請問板大
    我想要用Excel匯入外部資料的功能,抓取證交所網頁資料
    可是有些資料(像是三大法人的買賣超)
    他們的網址並沒有全部顯示出來,
    要如何得知他們的正確網址 ?
    感謝版大賜教 !!

    1. 請問 http://****.com/aaa.php

      echo $_SERVER['SERVER_NAME']

      那echo出來的是 http://****.com/ 這樣嗎

      $_SERVER['SERVER_NAME'] 的運作方式我搞不清楚 不知道能不能介紹一下

      我有一台server 我有兩個網域名稱都指向這個server的ip

      但只有用其中一個連過去時$_SERVER['SERVER_NAME'] 會顯示出來http://****.com/

      另一個不會

  2. 如果您喜欢简单,您也许会喜欢我写的blog系统的简单。尽管是初学php等web语言,但是喜欢简洁的我,不希望在wordpress的前后台跳来跳去,就自己写起了php。不过,我想得到喜欢php的朋友们的帮助和指正,把程序写的更好。

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料