Самый быстрый метод, который я использовал, это DirectoryIterator, но доступный только с PHP5.
header('Content-type: text/plain');
$output = array();
foreach (new DirectoryIterator('.') as $file) {
if ($file->isFile()) {
$output[] = $i++ . " " . $file->getFileName() . "\n";
$output[] = file($file->getPathName());
$output[] = "\n------------\n";
}
}
echo implode('', $output);