php对csv文件的读取,写入,输出下载操作详解

  

复制代码 代码如下:

  <?php

  $file = fopen('text.csv','r');

  while ($data = fgetcsv($file)) {    //每次读取CSV里面的一行内容

  //print_r($data); //此为一个数组,要获得每一个数据,访问数组下标即可

  $goods_list[] = $data;

  }

  //print_r($goods_list);

  echo $goods_list[0][1];

  fclose($file);

  ?>

  在实际工作中,很多时候需要把网站上的一些数据下载到CSV文件里,方便以后查看。

  亦或者是用CSV进行一些批量的上传工作。

  这个时候我们就需要对CSV进行读写操作。

  CSV的读取操作

  

复制代码 代码如下:

  <?php

  $file = fopen('D:/file/file.csv','r');

  while ($data = fgetcsv($file)) {    //每次读取CSV里面的一行内容

  print_r($data); //此为一个数组,要获得每一个数据,访问数组下标即可

  }

  fclose($file);

  ?>

  <?php $file = fopen('D:/file/file.csv','r'); while ($data = fgetcsv($file)) { //每次读取CSV里面的一行内容 print_r($data); //此为一个数组,要获得每一个数据,访问数组下标即可 } fclose($file); ?>

  CSV的写入操作

  

复制代码 代码如下:

  <?php

  $fp = fopen('d:/file/file.csv', 'w');

  fputcsv($fp,array('aaa','bbb','cccc'));

  fputcsv($fp,array('mmm','yyy','haha'));   //fputcsv可以用数组循环的方式进行实现

  fclose($fp);

  ?>

  <?php $fp = fopen('d:/file/file.csv', 'w'); fputcsv($fp,array('aaa','bbb','cccc')); fputcsv($fp,array('mmm','yyy','haha')); //fputcsv可以用数组循环的方式进行实现 fclose($fp); ?>

  输出CSV(下载功能)

  

复制代码 代码如下:

  <?php

  header("Content-Type: text/csv");

  header("Content-Disposition: attachment; filename=test.csv");

  header('Cache-Control:must-revalidate,post-check=0,pre-check=0');

  header('Expires:0');

  header('Pragma:public');

  echo "id,areaCode,areaName/n";

  echo "1,cn,china/n";

  echo "2,us,America/n";

  ?>

  输出excel(下载功能)

  header("Content-type:application/vnd.ms-excel");

  header("Content-Disposition:filename=php100.xls");

  echo "id,areaCode,areaName/n";

  echo "1,cn,china/n";

  echo "2,us,America/n"