ホームページ > バックエンド開発 > PHPチュートリアル > PHP ディレクトリのリストでファイル名ではなく「1」が返されるのはなぜですか?

PHP ディレクトリのリストでファイル名ではなく「1」が返されるのはなぜですか?

Susan Sarandon
リリース: 2024-12-05 06:39:15
オリジナル
636 人が閲覧しました

Why Does My PHP Directory Listing Return

PHP でディレクトリからファイル名を取得する

PHP では、ディレクトリ内のファイル名を取得するのは簡単な作業です。ただし、提示したコードがファイル名ではなく「1」を返すという問題が発生する可能性があります。

コードを詳しく見てみましょう:

if (is_dir($log_directory)) {
    if ($handle = opendir($log_directory)) {
        while($file = readdir($handle) !== FALSE) {
            $results_array[] = $file;
        }
        closedir($handle);
    }
}
ログイン後にコピー

このコードでは、 opendir() と readdir() を使用してディレクトリからファイルを読み取ろうとしています。この方法は多くの場合機能しますが、ファイル名が常に正しく表示されるとは限りません。

解決策: ファイルの取得に glob() を使用します

opendir( を使用する代わりに) と readdir() を使用する場合は、glob() 関数の利用を検討してください。これは、ディレクトリ内のファイルのリストを取得するためのより効率的な方法を提供します。

foreach(glob($log_directory.'/*.*') as $file) {
    ...
}
ログイン後にコピー

このコードでは、glob() は、任意のファイル拡張子 (*.*) を持つすべてのファイルを $log_directory で検索します。見つかったファイルへのフル パスを含む配列を返します。

glob() から取得した配列を反復処理することで、名前を含む各ファイルのフル パスにアクセスできます。この方法では、ファイル名として「1」を取得する問題がなくなり、ディレクトリ内の実際のファイル名が得られます。

以上がPHP ディレクトリのリストでファイル名ではなく「1」が返されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート