Php 合并多个csv文件,生成空白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)
<?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不是一个错误很酷谢谢,认为是路径和重新排序代码的组合将其排序。只需要从每个文件中删除标题,但它可以工作。很酷谢谢,认为是路径和重新排序代码的组合将其排序。只需要从每个文件中删除标题,但它可以工作。