我目前正在尝试使用以下代码合并多个.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文件夹位于同一目录中。
答案 0 :(得分:2)
正如我在评论中所提到的,您在/
目录名之后缺少exports
。因此,从文件中读取内容时文件名出错。
另外,在处理开始之前,请echo $csvdir
和echo 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); ?>