1

私はファイルfunctions.phpを持っています。ファイル内には、次のような特定の場所を指すいくつかの関数があります。

function returnFolders() {
    $folders = array_filter(glob("images/*"), 'is_dir');
    return $folders;
}

この関数は、functions.phpファイルが配置されているimages/フォルダー内のディレクトリを返します。

問題は、function.phpが存在する別のフォルダーにあるスクリプトからこのfunction.phpを含めると、この関数が正しい結果をもたらさないことです。

これをどのように解決すれば、functions.phpが配置されているフォルダーが常に返されますか?

パスは次のようになります。

common/functions.php
common/images/1
common/images/2
common/crons/im_including_functions.php
dir1/im_also_including_functions.php
d3/me_too.php
4

2 に答える 2

1

魔法の定数をチェックしてください。

たとえば、を使用__DIR__して現在のスクリプトディレクトリを取得できます。

あなたのディレクトリ構造についてもっと知らなければ、私は本当にもっと具体的にすることはできません。


考え直してみると、あなたの場合のより良い解決策は、imagesフォルダへの絶対パスを使用することであるように私には思えます。そうすれば、この関数がどこで実行さimagesれても、同じ場所で検索されます。

于 2013-02-26T18:22:57.877 に答える
0

相対パスと絶対パスについてです。相対パスを使用する場合は、コードを実行するファイルから開始します。

したがって、最初にこれら2つのタイプのパスを理解する必要があります

http://webdesign.about.com/od/beginningtutorials/a/aa040502a.htm

後で、これを修正するためのソリューションの最良の方法を見つけることができます

パスについてのphp関数についての少しの助けのために http://php.net/manual/en/function.realpath.php

この助けを願っています;)

于 2013-02-26T18:28:44.380 に答える