Php 使用fopen()读取文件列表,而不是文件本身
我希望有人能告诉我,如果我找错了方向,认为下面的代码可能会稍微修改,这样它就不会打开一个文件,而是打开第一个文件中包含的文件列表 以下是我当前的代码:Php 使用fopen()读取文件列表,而不是文件本身,php,fopen,Php,Fopen,我希望有人能告诉我,如果我找错了方向,认为下面的代码可能会稍微修改,这样它就不会打开一个文件,而是打开第一个文件中包含的文件列表 以下是我当前的代码: $myFile = "atextfile.txt"; $v = fopen($myFile, 'r'); $data = fgets($v); fclose($v); $this->variable = html_entity_decode($data, ENT_NOQUOTES, 'UTF-8'); 它工作得很好,但要读取多个文件,我必
$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”文件。然后,通过在此列表中包含或删除文件名,我将能够轻松地交换文件顺序和/或更改包含的文件
有人有什么建议吗?类似这样的建议:
$myFile = file('atextfile.txt');
foreach($myFile as $file)
{
if(file_exists($file))
{
$data[] = file_get_contents($file);
}
}
print_r($data);
读取目录,打开所有文件,捕获所有数据,完成单个任务。 您可以将函数附加到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');
“重复上面的文字”。。。?!我希望你的意思是循环。这看起来像我的目标,但fgets($v)部分会将cr或换行添加到文件中吗?我需要一根长绳子。例如,如果一个文件中是“a”,下一个文件中是“bc”,那么我需要最后一个$data变量是“abc”,其中没有任何其他内容。由于某种原因,上面的代码正在悄无声息地失败…不知道为什么,但这可能是原因。