网站地图    收藏   

主页 > php专栏 > php应用 >

PHP操作csv文件代码详解 - php高级应用

来源:自学PHP网    时间:2014-11-27 22:16 作者: 阅读:

[导读] 在php中读取操作csv文件的方法有很多,最简单的可以直接使用fopen像打开txt文件打开,然后利用explode分开就成了,生成也一样直接使用a,b,c,e保存成csv格式就KO,但php还提供了fputcsv函数对csv文件...

PHP操作csv文件代码详解

在php中读取操作csv文件的方法有很多,最简单的可以直接使用fopen像打开txt文件打开,然后利用explode分开就成了,生成也一样直接使用a,b,c,e保存成csv格式就KO,但php还提供了fputcsv函数对csv文件操作,下面我来介绍介绍.

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

  1. <?php 
  2. $list = array ( 
  3.     'aaa,bbb,ccc,dddd'
  4.     '11,22,33'
  5.     '"php","java"' 
  6. ); 
  7. $fp = fopen('file.csv''w'); 
  8. foreach ($list as $line) { 
  9.     fputcsv($fpexplode(','$line)); 
  10. fclose($fp); 
  11. ?> 

小提示,如果你csv中有中文我们需要注意一下中文问题,否则中文乱码就会和你在一起玩哦,下面给了一个实例解决中文乱码,代码如下:

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

读取csv文件的某一行数据,代码如下:

  1. <?php 
  2. function get_file_line( $file_name$line ){ 
  3. $n = 0; 
  4. $handle = fopen($file_name,'r'); 
  5. if ($handle) { 
  6. while (!feof($handle)) { 
  7. ++$n
  8. $out = fgets($handle, 4096); 
  9. if($line==$nbreak
  10. fclose($handle); 
  11. if$line==$nreturn $out
  12. return false; 
  13. echo get_file_line("windows_2011_s.csv", 10); 
  14. ?> 

读取csv文件制定行数,行区间,代码如下:

  1. <?php 
  2. function get_file_line( $file_name$line_star$line_end){ 
  3. $n = 0; 
  4. $handle = fopen($file_name,"r"); 
  5. if ($handle) { 
  6. while (!feof($handle)) { 
  7. ++$n
  8. $out = fgets($handle, 4096); 
  9. if($line_star <= $n){ 
  10. $ling[] = $out
  11. if ($line_end == $nbreak
  12. fclose($handle); 
  13. if$line_end==$nreturn $ling
  14. return false; 
  15. $aa = get_file_line("windows_2011_s.csv", 11, 20); //从第11行到第20行 
  16. foreach ($aa as $bb){ 
  17. echo $bb."<br>"
  18. ?>

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论