Php 合并多个csv文件,生成空白csv

Php 合并多个csv文件,生成空白csv,php,csv,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文件:

<?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文件夹位于同一目录中。

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

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

以下是工作演示:

这是您修改过的代码:

<?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); ?>

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

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

以下是工作演示:

这是您修改过的代码:

<?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); ?>


读取文件内容后,能否在while循环内打印
$csvcontent
?另外,是否要尝试在
/exports
之后添加
/
,因为我认为当您读取文件内容时,路径将变得无效。是否确实要进入
if
中?尝试在if(is_dir()和
$handle=readdir()
之后添加一些echo语句。我看不到任何明显的情况,您是否尝试插入一些echo语句来检查您的if和whiles是否以您预期的方式触发?例如if is_dir($csvdir)返回false您的代码永远不会运行,这将解释您的行为seeing@TobiasF.ifs中没有输出任何内容,所以它没有走那么远。这是因为导出的路径错误吗?@fiveelements很好地指出了缺失/在这种情况下,如果文件不能被删除,我将添加该文件\u get\u contents返回falseead不是错误读取文件内容后,能否在while循环中打印
$csvcontent
?另外,是否要尝试在
/exports
之后添加
/code>,因为读取文件内容时,路径将变得无效。是否确实要进入
if
s?尝试添加一些echo stat在
if(is_dir()
$handle=readdir()
之后,我没有看到任何明显的变化,您是否尝试插入一些echo语句来检查您的ifs和whiles是否以您预期的方式触发?例如if is_dir($csvdir)返回false您的代码永远不会运行,这将解释您的行为seeing@TobiasF.ifs中没有输出任何内容,所以它没有走那么远。这是因为导出的路径错误吗?@fiveelements很好地指出了缺失/在这种情况下,如果文件不能被删除,我将添加该文件\u get\u contents返回falseead不是一个错误很酷谢谢,认为是路径和重新排序代码的组合将其排序。只需要从每个文件中删除标题,但它可以工作。很酷谢谢,认为是路径和重新排序代码的组合将其排序。只需要从每个文件中删除标题,但它可以工作。