首先,我们分读取和写入两个模块进行。
读取:
function read_csv($file){
setlocale(LC_ALL,'zh_CN');//linux系统下生效
$data = null;//返回的文件数据行
if(!is_file($file)&&!file_exists($file))
{
die('文件错误');
}
$cvs_file = fopen($file,'r'); //开始读取csv文件数据
$i = 0;//记录cvs的行
while ($file_data = fgetcsv($cvs_file))
{
$i++;
if($i==1)
{
continue;//过滤表头
}
if($file_data[0]!='')
{
$data[$i] = $file_data;
}
}
fclose($cvs_file);
那接下来就是写入了
function createcsv($csv_body){
// 头部标题
$csv_header = array('sku','我们自己的成本价','京东自己的销售价','对比结果');
/**
* 开始生成
* 1. 首先将数组拆分成以逗号(注意需要英文)分割的字符串
* 2. 然后加上每行的换行符号,这里建议直接使用PHP的预定义
* 常量PHP_EOL
* 3. 最后写入文件
*/// 打开文件资源,不存在则创建
$des_file = 'd:/res.csv';
$fp = fopen( $des_file,'a');// 处理头部标题
$header = implode(',', $csv_header) . PHP_EOL;// 处理内容
$content = '';
foreach ($csv_body as $k => $v) {
$content .= implode(',', $v) . PHP_EOL;
}// 拼接
$csv = $header.$content;// 写入并关闭资源
fwrite($fp, $csv);
fclose($fp);}
在php中,可以使用fputcsv函数将数据写入csv文件中。下面小编举例讲解php中如何将数据写入csv格式文件。
fputcsv() 函数用于将数据格式为csv格式,以便写入文件或者数据库.
$test_array = array(
array("111","sdfsd","sdds","43344","rrrr"),
array("sssssssss","gdfgfd","232323","wwewe","dsfds"),
array("fgfg","e4343","dsfds","w2332","xcvxc"),
array("11212","2323","344343","344343","rerreer"),
array("fds","43344444","33333333","ttttttt","gggggggggggg"),
array("kdfs","dsfdsfds","wewewe","sdsdddddddd","wwwwwwwwwww")
);
$file = fopen("test.csv","w") or die("Can't Open test.csv");
foreach($test_array as $line_array)
{
$isSuccess = fputcsv($file,$line_array);
print $isSuccess."
";
if($isSuccess===false)
{
die("Can't write csv line".$line_array);
}
}
fclose($file) or die("Can't close file test.csv.");
fputcsv()函数返回所写入行的字符的个数或者false,当写入失败时就返回false.