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」

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
分類: Programming。這篇內容的永久連結

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

  1. 賭神表示:

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

  2. Tsung表示:

    我對這個不熟耶.
    應該直接去他的網站再想辦法翻翻看?

  3. ekeyzhao表示:

    可以获取到当前PHP以及他后面的参数吗?
    比如: http://****.com/index.php?id=9&prent=0
    如何写一句PHP可以获取到 'index.php?id=9&prent=0'
    我是说不用再处理,直接获取到
    谢谢
    ekeyzhao@yahoo.cn 祖国的朋友

  4. Tsung表示:

    echo $_SERVER['REQUEST_URI']; 就有了~ 🙂

    • alu表示:

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

      echo $_SERVER['SERVER_NAME']

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

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

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

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

      另一個不會

    • Tsung表示:

      可見此篇說明: http://www.php.net/manual/en/reserved.variables.server.php
      'SERVER_NAME'
      The name of the server host under which the current script is executing. If the script is running on a virtual host, this will be the value defined for that virtual host.
      同一台機器 + 同一個 Host, 印出 $_SERVER['SERVER_NAME'] 一定是一樣的, 你可能要再檢查一下囉~ 🙂

  5. 赵鑫表示:

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

發表迴響

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