马富天PHP博客

PHP操作CSV文件(读取和写入操作)

学习笔记 马富天 2016-07-18 15:30:34 32 0

【摘要】在网站开发中对于csv文件的操作还是蛮多的,例如将csv文件中的导入到Mysql数据库中,将Mysql数据库中的数据导出到csv文件中,实现数据的备份,本文记录一下PHP对CSV文件的这两种操作。

PHP操作主要涉及到两个PHP内置函数:

fputcsv():将行格式化为 CSV 并写入文件指针

fgetcsv():从文件指针中读入一行并解析 CSV 字段

PHP通过这两个函数就可以实现对csv文件的读和写,当然另外是需要用到文件操作函数fopen()、fclose(),其实实现起来并不复杂,接下来就是给出这两个函数的实例。

一、PHP读取CSV文件中的数据,并解决中文乱码问题

首先,创建一个csv文件,写入如下内容:

请输入图片名称

读取并显示 CSV 文件的整个内容:

  1. echo '<meta charset = "utf-8" />';
  2. $row = 1;
  3. if (($handle = fopen("0001.csv", "r")) !== FALSE) 
  4. {
  5.     while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) 
  6.     {
  7.         $num = count($data);
  8.         echo "<p>第 $row 行的内容:共 $num 列</p>";
  9.         ++$row;
  10.         for ($c=0; $c < $num; $c++) 
  11.         {
  12. 			//	注意中文乱码问题,这一行代码非常中,如果没有这行,则会出现中文乱码
  13. 			$data[$c]=iconv("gbk", "utf-8//IGNORE",$data[$c]);        	
  14.             echo $data[$c] . ",";
  15.         }
  16.         echo '<br />';
  17.     }
  18.     fclose($handle);
  19. }

输出的结果如下面截图所示:

请输入图片名称

二、PHP把数据写入到CSV文件中

fputcsv():将一行(用 fields 数组传递)格式化为 CSV 格式并写入由 handle 指定的文件

同样,首先也是数据,这里的数据就不从数据库里读取出来了,直接使用一个数组array来表示从数据库中获取的,将要写入到csv文件中:

  1. $data = array(
  2. 	0 => array(
  3. 		'id' => 'id',
  4. 		'name' => 'name',
  5. 		'age' => 'age',
  6. 		'sex' => 'sex'
  7. 	),		
  8. 	1 => array(
  9. 		'id' => 1,
  10. 		'name' => '小小人',
  11. 		'age' => 10,
  12. 		'sex' => '男'
  13. 	),
  14. 	2 => array(
  15. 		'id' => 2,
  16. 		'name' => '天下第二',
  17. 		'age' => 20,
  18. 		'sex' => '男'
  19. 	)
  20. );

然后是写入到csv文件中:

  1. //	已读的方式打开0002.csv文件,若0002.csv不存在,则尝试创建它
  2. //	这里如果统一使用字符集utf-8的话,就不会出现中文乱码
  3. $handle = fopen('0002.csv','w');
  4. foreach($data as $k => $fields)
  5. {
  6. 	fputcsv($handle, $fields);
  7. }
  8. fclose($handle);

执行结果截图如下:

请输入图片名称

版权归 马富天PHP博客 所有

本文标题:《PHP操作CSV文件(读取和写入操作)》

本文链接地址:http://www.mafutian.net/161.html

转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^

0

0

上一篇《 学习PHP时间、日期必须会使用的四个函数:date()、strtotime()、mktime()、time() 》 下一篇《 javascript中prompt()方法弹出输入框的使用示例 》
分享到:

暂无评论

评论审核未开启
表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情
验证码