我希望那里有人可以告诉我,如果我正在咆哮错误的树,认为下面的代码可能会稍微修改一下,这样就不会打开一个文件,而是打开一个包含在文件中的文件列表。第一档。
这是我目前的代码:
$myFile = "atextfile.txt";
$v = fopen($myFile, 'r');
$data = fgets($v);
fclose($v);
$this->variable = html_entity_decode($data, ENT_NOQUOTES, 'UTF-8');
它工作正常,但要读取多个文件,我必须将所有小文件合并为一个大文件,否则重复上面的文本,我正在尝试阅读的96个小文件。
我想要的是拥有“atextfile.txt”文件中包含的文本文件列表。另一种方法可能是它可以读取某个目录中的所有“* .txt”文件或类似的东西。然后,通过在此列表中包含或删除文件名,我将能够轻松地交换文件的顺序和/或更改我包含的文件。
有人有任何建议吗?
答案 0 :(得分:1)
这样的事情:
$myFile = file('atextfile.txt');
foreach($myFile as $file)
{
if(file_exists($file))
{
$data[] = file_get_contents($file);
}
}
print_r($data);
答案 1 :(得分:0)
读取目录,打开所有文件,捕获所有数据,执行单个任务。 您可以将函数附加到if语句以添加添加条件,例如排除文件名。
$data = null;
if ($handle = opendir('./path/to/files')) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != ".." && substr($entry,-4) == '.txt') {
$myFile = $entry;
$v = fopen($myFile, 'r');
$data .= fgets($v); // concatenate
fclose($v);
}
}
closedir($handle);
}
// capture the big string
$this->variable = html_entity_decode($data, ENT_NOQUOTES, 'UTF-8');