2013-02-09 3 views
0

Скажите, что я хочу найти файл в одном из родительских каталогов скрипта. Рассмотрим этот файл дерева:Получить URL-адрес файла на сервере с PHP

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

ответ

0

Вы можете использовать The RecursiveDirectoryIterator class

и вот хороший tutorial, которые могли бы помочь вам

Я надеюсь, что это поможет, если больше помощь нужна нам здесь и рад помочь :)

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); $ pathToFile = $ basePath. $ Path. $ FileName;

echo $ pathToFile;

Выполните функцию из этого!

Lucian

2
getcwd() 

дать вам текущую директорию от корня сервера, как /дома/винсентской/public_html/папку вы можете получить DOCUMENT_ROOT По

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

Вы должны удалить DOCUMENT_ROOT от первого из getcwd и согласовать с именем хоста. как этот

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

выход:

http://www.domain.com/folder