2011-07-27 56 views
0

我有一個目錄,有說10個.txt文件。使用打開目錄:閱讀文件列表,並重新寫入主列表

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

我需要能夠讀取該文本文件的文件名,然後將所有這些文件的名稱寫入主列表用|在每個文件名之後。我也不希望masterlist.txt寫入其本身lol。因此,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。 –