0

スクリプトの親ディレクトリの1つでファイルを検索するとします。このファイルツリーについて考えてみましょう。

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を取得するためのより良い方法はありますか?

4

4 に答える 4

6
getcwd()

/home/vincent/public_html/folderのようなサーバー ルートから現在のディレクトリを指定すると、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
于 2013-02-09T21:04:21.790 に答える
0

RecursiveDirectoryIterator クラスを使用できます

そして、ここにあなたを助けるかもしれない良いチュートリアルがあります

これ以上助けが必要な場合は、私たちがここにいて喜んで助けてくれることを願っています:)

于 2013-02-09T20:59:49.343 に答える
0
while (!file_exists($nameFile)) {
    chdir('..');
}
return "http://".$_SERVER['HTTP_HOST'].str_replace('\\', '/', getcwd());
于 2013-02-09T21:01:27.343 に答える
0

$basePath="http://hostname.com/"; $fileName="needle.php"; $folderPath="Folder0\Folder1\";

$path=str_replace("\","/",$folderPath); $pathToFile=$basePath.$path.$fileName;

echo $pathToFile;

それから機能を作ろう!

ルシアン

于 2013-02-09T21:02:06.133 に答える