读取目录中所有文件并处理文件字符串的最佳实践


Best practice for reading all files in a directory and dealing with file strings

在Java中,有一个File对象,我可以用来引用文件的父对象、列出子文件以及其他有用的函数(方法)。这些方法可以返回File对象,所以我不需要处理文件的字符串。相反,我可以直接管理对象。这使事情变得漂亮整洁,而且不容易出现打字错误。

在PHP中,我将目录字符串与文件名字符串连接起来以获得文件字符串。它很好用,但对我来说这似乎是个噱头,我想知道是否有更好的方法。是否有与内置Java文件对象等效的PHP?

以下是我读取目录中所有文件并逐行打印其内容的代码:

$reportDir = realpath(RESOURCE_PATH . "/userFiles/uploadedReports");
if ($dirHandle = opendir($reportDir)) {
    while (false !== ($entry = readdir($dirHandle))) {
        if ($entry != "." && $entry != ".."){
            $fileString = $reportDir . "/" . $entry;
            $fileHandle = fopen($fileString, "r");
            while (!feof($fileHandle) ) {
               $line = fgets($fileHandle);
               echo $line . "<br />";
            }
            fclose($fileHandle);
            $i++;
        }
    }
    closedir($dirHandle);
}

如果您想确切地知道我试图用这段代码完成什么,我将向用户显示一个HTML表,其中包含来自制表符分隔文件的数据。

是的,有一个名为SplFileObject的SPL类,它有处理文件内容的方法。。。还有它的父SplFileInfo,它有用于基本文件信息(mtime、路径、文件名等)的方法。还有一系列迭代器,用于处理对目录/文件树等结构的迭代。