0

私はという名前の空のフォルダを持っていますmy_folder

$mas = glob("my_folder/*");
var_dump($mas);

ファイルmy_folderがある場合、結果は配列になりますが、my_folder空の場合、結果はになりfalseます。

false空のarray()ではなく結果が表示されるのはなぜですか?

4

4 に答える 4

2
  • ほとんどの場合、に対する権限がありませんmy_folder

  • また、(PHPマニュアルから)次の理由も考えられます。

一部のシステムでは、空の一致とエラーを区別することができません。

後者があなたの場合であるならば、私はあなたにそれをするための「古典的な」方法にフォールバックすることを提案します:

while (false !== ($entry = readdir($handle))) {
        echo "$entry\n";
}

使用:

opendir(), readdir(), closedir()
于 2012-12-10T21:23:42.337 に答える
1

PHPマニュアルには、エラーが発生した場合にglob戻ると記載されています。FALSEエラーがあるため、空の配列は取得されません。

ここにいくつかの一般的なエラーがありglobます:

  • ファイル/フォルダーに対するアクセス許可がありwww-dataません(つまり、アクセス許可がありません)
  • 何かをタイプミスしました
  • リモートファイルで作業しようとしています(サポートされていません)
  • あなたはそれを持っていない古いシステムを使用しています(例えば、本当に古いS OS)
于 2012-12-10T21:24:11.193 に答える
0

戻り値:一致したファイル/ディレクトリを含む配列を返します。一致したファイルがない場合は空の配列を返し、エラーの場合はFALSEを返します。

注: 一部のシステムでは、空の一致とエラーを区別することができません。

これらのポイントの両方があなたとあなたの特定のプラットフォームに関連していないことを確認してください。

于 2012-12-10T21:24:28.987 に答える
0

[戻り値]セクションのPHPglobのマニュアルページから:

一致したファイル/ディレクトリを含む配列を返します。一致したファイルがない場合は空の配列を返し、エラーの場合はFALSEを返します。

于 2012-12-10T21:25:27.327 に答える