合并多个csv文件产生空白csv

时间:2019-08-13 09:07:44

标签: php csv

我目前正在尝试使用以下代码合并多个.csv文件:

<?php $csvdir = get_template_directory() . '/exports';
$csvcontent = '';
if (is_dir($csvdir)) {
    if ($handle = opendir($csvdir)) {
        while (($file = readdir($handle)) !== false) {
            if (substr($file, -4) === ".csv") {
                $csvcontent .= file_get_contents($csvdir . $file);
            }
        }
        closedir($handle);
    }
}

$result = fopen('app/merge.csv', 'w');
fwrite($result, $csvcontent);
fclose($result); ?>

目前正在输出空白的csv文件,没有错误。代码有明显的错误吗?

生成此模板的模板与exports文件夹位于同一目录中。

1 个答案:

答案 0 :(得分:2)

正如我在评论中所提到的,您在/目录名之后缺少exports。因此,从文件中读取内容时文件名出错。

另外,在处理开始之前,请echo $csvdirecho is_dir($csvdir)检查目录是否有效。

这是工作示例:https://repl.it/@fiveelements/MergeCSVContents

这是您修改的代码:

<?php $csvdir =  './exports/';
$csvcontent = '';
if (is_dir($csvdir)) {
    if ($handle = opendir($csvdir)) {
        while (($file = readdir($handle)) !== false) {
            if (substr($file, -4) === ".csv") {
                $csvcontent .= file_get_contents($csvdir . $file);
            }
        }
        closedir($handle);
    }
}
echo $csvcontent;
$result = fopen('exports/merge.csv', 'w');
fwrite($result, $csvcontent);
fclose($result); ?>