2013-02-09 73 views
0

說我想在腳本的父目錄之一中找到文件。考慮這個文件樹:使用PHP獲取服務器上的文件的URL

Folder0 
    Folder1 
     needle.php 
     Folder2 
      Folder3 
       script.php 

我跑script.php,我需要找到哪些目錄包含needle.php。我這樣做:

while (!file_exists($nameFile)) { 
    chdir('..'); 
    } 
return getcwd(); 

這將返回「Folder0 \ Folder1 \」;

將此路徑轉換爲此文件的URL的正確方法是什麼?(例如`http://hostname.com/Folder0/Folder1/needle.php"

還是有一個更好的方式來獲得一個服務器上的文件的URL?

+0

用[水珠()](http://php.net/manual/en/function.glob.php)實測值函數 – 2013-02-09 21:02:28

+0

此解決方案:HTTP: //stackoverflow.com/a/13616247/710356。它堅實嗎? – sbichenko 2013-02-09 21:02:33

回答

0
while (!file_exists($nameFile)) { 
    chdir('..'); 
} 
return "http://".$_SERVER['HTTP_HOST'].str_replace('\\', '/', getcwd()); 
0

$ basePath =「http://hostname.com/」; $文件名= 「needle.php」; $ folderPath =「Folder0 \ Folder1 \」; $ path = str_replace(「\」,「/」,$ folderPath); $ path = str_replace(「\」,「/」,$ folderPath); $ pathToFile = $ basePath。$ path。$ fileName;

echo $ pathToFile;

發揮它的功能!

盧西恩

2
getcwd() 

給您當前目錄從服務器的根像/家/文森特/的public_html /文件夾你可以得到DOCUMENT_ROOT通過

$_SERVER['DOCUMENT_ROOT'];// /home/vincent/public_html 

必須從第一GETCWD的刪除DOCUMENT_ROOT並與主機名稱連接。這樣

echo str_replace("\\",'/',"http://".$_SERVER['HTTP_HOST'].substr(getcwd(),strlen($_SERVER['DOCUMENT_ROOT']))); 

輸出:

http://www.domain.com/folder 
相關問題