Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用fopen()读取文件列表,而不是文件本身_Php_Fopen - Fatal编程技术网

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”,其中没有任何其他内容。由于某种原因,上面的代码正在悄无声息地失败…不知道为什么,但这可能是原因。