codetc - 网站开发技术 首页 代码 PHP 查看内容

PHP读写csv文件

2015-4-9 00:39| 发布者: CODETC| 查看: 4015| 评论: 0

CSV是最通用的一种文件格式,它可以非常容易地被导入各种PC表格及数据库中,同时也可以代替excel工作表作为导出报表的文件格式,因此在PHP中也提供了比操作excel工作表更简易的操作函数。


1.生成CVS,fputcsv()将行格式化为 CSV 并写入文件指针

fputcsv() 函数将行格式化为 CSV 并写入一个打开的文件,该函数返回写入字符串的长度。若出错,则返回 false。

语法
fputcsv(file,fields,seperator,enclosure)

file:必需,规定要写入的打开文件。
fields:必需,规定要从中获得数据的数组。
seperator:可选,规定字段分隔符的字符。默认是逗号 (,)。
enclosure:可选,规定字段环绕符的字符。默认是双引号 "。


<?php
/** by www.codetc.com*/
$list = array (
	'www,codetc,com,csv',
	'11,22,33',
	'"php","java","linux"'
);
$fp = fopen('file.csv', 'w');
foreach ($list as $line) {
	fputcsv($fp, explode(',', $line));
}
fclose($fp);
?> 

结果:


2.读取cvs,使用fgetcsv()文件指针中读入一行并解析 CSV 字段

fgetcsv() 函数从文件指针中读入一行并解析 CSV 字段,出错时返回 FALSE,包括碰到文件结束时。

语法
fgetcsv(file,length,separator,enclosure)

file:必需,规定要检查的文件。
length:可选,规定行的最大长度。必须大于 CVS 文件内最长的一行。
separator:可选,设置字段分界符(只允许一个字符),默认值为逗号。
enclosure:可选,设置字段环绕符(只允许一个字符),默认值为双引号。


比如说我要读取如下csv文件:


<?php
/** by www.codetc.com*/
$row = 1;
$handle = fopen("file.csv","r");
//fgetcsv() 解析读入的行并找出 CSV格式的字段然后返回一个包含这些字段的数组。 
while ($data = fgetcsv($handle, 1000, ",")) {
	$num = count($data);
	echo "<p> $num fields in line $row: <br>\n";
	$row++;
	for ($c=0; $c < $num; $c++) {
		//注意中文乱码问题
		$data[$c]=iconv("gbk", "utf-8//IGNORE",$data[$c]);  
		echo $data[$c] . "<br>\n";
	}
}
fclose($handle);
?> 


上面的例子中需要特别注意的是:中文编码问题

文章来源 CODETC,欢迎分享,转载请注明地址: http://www.codetc.com/article-171-1.html

最新评论

 作为游客发表评论,请输入您的昵称

返回顶部