2011-07-27 10 views
0

10個の.txtファイルを持つディレクトリがあります。使用してディレクトリを開きます。ファイルのリストを読み、マスターリストに書き直します

$dir_handle = @opendir($path) or die("Unable to open $path"); 

私は、テキストファイルのファイル名を読み、その後でマスターリストにすべてのそれらのファイル名を記述できるようにする必要があります|各ファイル名の後に。私はmasterlist.txtを自分自身の内部に書くことも望まない。したがって、masterlist.txtは.txtファイルのファイル名で書き込まれるファイルです。

答えて

1

ディレクトリをreaddir()でループし、各エントリがマスターリストでないか、.または..であることを確認します。 file_put_contents()でファイルに書き込みます。

// If master.txt already exists, delete it. 
if (file_exists('master.txt')) { 
    unlink('master.txt'); 
} 

$dir_handle = @opendir($path) or die("Unable to open $path"); 
while ($f = readdir($dir_handle)) { 
    if ($f != '.' && $f != '..' && $f != 'master.txt') { 
    file_put_contents('master.txt', $f . "|", FILE_APPEND); 
    } 
} 

だけ.txtファイルをしたい場合は、のようなものを使用します。

if (preg_match('/^(.+)\.txt$/', $f)) { 
    // it's a .txt file. 
} 
+0

は素晴らしい作品!更新するのではなく、マスターファイルを上書きする方法を教えてください。だから、それはディレクトリのgetのファイル名を通過するたびに、それは単にそれを更新するのではなく、クリーン/空のマスターファイルに書き込むでしょう。 – Jason

+0

上記の 'file_exists()'を参照してください。これは、新しいものを書き込む前に既存のmaster.txtを削除します。 –

関連する問題