使用 PHP 合并多个 CSV 文件


Using PHP to Merge Multiple CSV Files

我是这个论坛的新手,也是PHP的新手,我正在测试站点上构建一些非常基本的函数,同时我学习了更多关于如何使用PHP的知识。我目前正在尝试的一个项目是合并两个CSV文件目录。

我希望使用 GLOB 作为 *通配符来收集每个目录中的文件,然后将它们组合在一起。我知道我在下面使用的方式不是很节省内存,但这只是为了学习。我遇到的问题是将 GLOB 命令设置为拾取我的所有 CSV 文件,然后将该变量放入file_get_contents中。

这是我的代码..

$files = glob("http://www.website.com/1/*.csv");
foreach($files as $filepath) {
  if ($handle = fopen($filepath, "r")) {
     // ...
  }
}
$files2 = glob("http://www.website.com/35/*.csv");
foreach($files2 as $filepath2) {
  if ($handle2 = fopen($filepath2, "r")) {
     // ...
  }
}
file_put_contents('final_data.csv',
    file_get_contents($files) .
    file_get_contents($files2)
);

当你使用 Glob 时,生成的数组不包含基本路径,所以你必须添加它,如下所示:

$basePath = '/path/to/csv';
foreach ($files = glob("$basePath/dir1/*.csv") as $filePath)
{
    echo "$basePath/$filePath";
    //
}

从本地路径而不是远程 URL 读取也是有意义的。