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 サイトの他の関連記事を参照してください。