PHP操作之合并CSV文件夹下的所有CSV文件内容到一个CSV文件

工作需要,才有了这么个奇怪的要求,其实很简单。

思路是循环遍历文件夹,读取每个CSV文件,写入到指定的CSV文件。

代码如下:

<?php
$dirName = "./csvTest"; //遍历这个文件夹

$targetFile = "./newCSV.csv";//保存文件名

// 经理要求:从$dirName 中遍历所有文件。都是.csv文件。把他们组合成一个文件,保存到$targetFile。

mergeCSV($dirName,$targetFile);

function mergeCSV($dirName,$targetFile){
	//打开待操作的文件夹句柄
	$handle1 = opendir($dirName);
	//遍历文件夹
	while(($res = readdir($handle1)) !== false){
		if($res != '.' && $res != '..'){
			//如果是文件,提出文件内容,写入目标文件
			if(is_file($dirName.'/'.$res)){
				$fileName = $dirName.'/'.$res;
				//读
				$handle2 = fopen($fileName,'r');
				if($str = fread($handle2,filesize($fileName))){
					fclose($handle2);
					$handle3 = fopen($targetFile,'a+');
					if(fwrite($handle3, $str)){
						fwrite($handle3,"\n");
						fclose($handle3);
					}
				}
			}
			//如果是文件夹,继续调用mergeCSV方法
			if(is_dir($dirName.'/'.$res)){
				$newDirName = $dirName.'/'.$res;
				mergeCSV($newDirName,$targetFile);
			}
		}
	}
}

猜你喜欢

转载自blog.csdn.net/raaaaay/article/details/79348336