請問如何從url取得file system path?

edited 十月 2013 in 進階PHP討論
譬如傳"/~simon/ap1/"
會return "/home/simon/public_html/ap1/"
想說應該有這樣的function吧
可是查php function reference裡url、apache等部份都找不到
請大大賜教 萬分感謝

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=3244

評論

  • edited 三月 2008
    /~simon/ap1/ 並不一定會等於 /home/simon/public_html/ap1/ ,系統環境配置不同就有不一樣的結果,為何需要這樣的函數?
  • edited 三月 2008
    ㄟ...那只是舉例
    我的意思是
    傳入一段virtual path(不知道這個說法恰不恰當,總之就是URL的directory部份)
    傳回在host對應到的實際filesystem path
    我以為PHP可以從web server取得這個資訊
    在AP需要佈署到許多不同位置的狀況下用得到
  • edited 三月 2008
    對於任意一個 URL,沒有十全十美的方法知道它在檔案系統中的 real path,原因是 web server 可以隨意把 URL 的路徑影射到其他路徑,例如 Apache 透過 Alias 或者 mod_rewrite 模塊,加上正規表達式的強大功能,即使是同一個 URL 路徑,不同的 file extension 也可以影射到不同 real paths,現實就是這般無奈。

    不過現實情況未必這樣惡劣,假設應用程式是你自己開發的,所有 path aliasing 和 path rewrite (通常放在 .htaccess 中)都在你的操控之內,你可以在應用程式的根目錄 (application root) 執行一個 install.php 程式,裡面利用 $_SERVER 和 __FILE__ 來推算 URL 路徑和檔案系統路徑之間的關係。
  • edited 三月 2008
    非常感謝您!
Sign In or Register to comment.