php中有几个处理csv的函数,fgetcsv($fp)
用于从一个文件句柄中读取一条csv记录,并解析成数组,每个元素对应一个字段;fputcsv($fp, $arr)
把整个数组转换成一条csv记录,数组的元素对应csv记录中的字段,写入文件中;还有个函数str_getcsv($str)
,是把一个具有csv格式的字符串解析成数组。
最近工作中需要处理csv格式的文件,生成csv,解析csv。遇到的一个问题困扰了我好几天,好好的csv文件,也是用fputcsv
函数生成的,用fgetcsv
或者str_getcsv
解析时,竟然多出好多字段!
代码如下:
$str = '周一,星期一,Monday,测试地,123456';
$fields = str_getcsv($str);
print_r(array_map(function($v){
// 为了在控制台中正常显示中文,特意转换编码