php操作csv文件代码实例汇总


Posted in PHP onSeptember 22, 2014

1.读取csv数据, 输出到sales.csv文件中:

$sales = array(
  array('Northeast', '2004-01-01', '2004-02-01', 12.54),
  array('Northwest', '2004-01-01', '2004-02-01', 546.33),
  array('Southeast', '2004-01-01', '2004-02-01', 93.26),
  array('Southwest', '2004-01-01', '2004-02-01', 945.21),
  array('All Regions', '---', '--', 1597.34),
);

$fh = fopen('sales.csv', 'w') or die("Can't open sales.csv");
foreach($sales as $sales_line){
  if(fputcsv($fh, $sales_line) === false){
    die("Can't write CSV line");  
  }
}

fclose($fh) or die("Can't close sales.csv");

2. 读取csv数据, 使用特殊的流输出

$sales = array(
  array('Northeast', '2004-01-01', '2004-02-01', 12.54),
  array('Northwest', '2004-01-01', '2004-02-01', 546.33),
  array('Southeast', '2004-01-01', '2004-02-01', 93.26),
  array('Southwest', '2004-01-01', '2004-02-01', 945.21),
  array('All Regions', '---', '--', 1597.34),
);

$fh = fopen('php://output', 'w');
foreach($sales as $sales_line){
  if(fputcsv($fh, $sales_line) === false){
    die("Can't write CSV line");  
  }
}

fclose($fh);

3. 读取csv数据, 输出到缓冲中

$sales = array(
  array('Northeast', '2004-01-01', '2004-02-01', 12.54),
  array('Northwest', '2004-01-01', '2004-02-01', 546.33),
  array('Southeast', '2004-01-01', '2004-02-01', 93.26),
  array('Southwest', '2004-01-01', '2004-02-01', 945.21),
  array('All Regions', '---', '--', 1597.34),
);

ob_start();
$fh = fopen('php://output', 'w') or die("Can't open php://output");
foreach($sales as $sales_line){
  if(fputcsv($fh, $sales_line) === false){
    die("Can't write CSV line");  
  }
}

fclose($fh) or die("Can't close php://output");
$output = ob_get_contents();
ob_end_clean();

4. 读取csv文件的数据

$fp = fopen('sample3.csv', 'r') or die("can't open file");
print "<table>\n";
while($csv_line = fgetcsv($fp)){
  print '<tr>';
  for($i=0, $j=count($csv_line); $i<$j; $i++){
    // print '<td>'.htmlentities($csv_line[$i]).'</td>';  
    print '<td>'.htmlentities(iconv("gb2312","utf-8",$csv_line[$i])).'</td>';
  }
  print "</tr>\n";
}
print "</table>\n";
fclose($fp) or die("can't close file");

5. 下载CSV文件

$sales = array(
  array('Northeast', '2004-01-01', '2004-02-01', 12.54),
  array('Northwest', '2004-01-01', '2004-02-01', 546.33),
  array('Southeast', '2004-01-01', '2004-02-01', 93.26),
  array('Southwest', '2004-01-01', '2004-02-01', 945.21),
  array('中国', '2004-01-01', '2004-02-01', 945.21),
);

$fh = fopen('php://output', 'w') or die("can't open php://output");
$total = 0;

// 告诉浏览器发送的是一个csv文件
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename="sales.csv"');

// 输出表头
fputcsv($output, array('Region', 'Start Date', 'End Date', 'Amount'));
// 输出每一行数据, 并递增$total
foreach($sales as $sales_line){
  if(fputcsv($fh, $sales_line) === false){
    die("Can't write CSV line");  
  }else{
    $total += $sales_line[3];  
  }
}

fputcsv($fh, array('All Regions', '--', '--', $total));

fclose($fh) or die("Can't close php://output");

6.读取CSV文件指定行和区间行

/*****读取CSV文件中的指定行*****/
function get_file_line_a($file_name,$line){
 $n = 0;
 $handle = fopen($file_name,'r');
 if ($handle) {
  while (!feof($handle)) {
    ++$n;
    $out = fgets($handle, 4096);
    if($line==$n) break;
  }
  fclose($handle);
 }
 if( $line==$n) return $out;
 return false;
}

echo get_file_line("windows_2011_s.csv", 10);//输入第10行内容


/*****读取CSV文件中的区间行*****/
function get_file_line_b( $file_name,$line_star, $line_end){
  $n = 0;
  $handle = fopen($file_name,"r");
  if ($handle) {
    while (!feof($handle)) {
      ++$n;
      $out = fgets($handle, 4096);
      if($line_star <= $n){
        $ling[] = $out;
      }
      if ($line_end == $n) break;
    }
    fclose($handle);
  }
  if( $line_end==$n) return $ling;
  return false;
}

//用 get_file_line读取并输出第11行到第20行

$aa = get_file_line("windows_2011_s.csv", 11, 20); //从第11行到第20行
foreach ($aa as $bb){
  echo $bb."<br>";
}
PHP 相关文章推荐
php a simple smtp class
Nov 26 PHP
php文档更新介绍
Jul 22 PHP
php preg_filter执行一个正则表达式搜索和替换
Feb 27 PHP
PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
Apr 02 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
Apr 30 PHP
linux下使用crontab实现定时PHP计划任务失败的原因分析
Jul 05 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
Sep 11 PHP
PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
Nov 25 PHP
PHP设计模式之原型设计模式原理与用法分析
Apr 25 PHP
PHP中检查isset()和!empty()函数的必要性
Feb 13 PHP
laravel实现查询最后执行的一条sql语句的方法
Oct 09 PHP
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
Oct 12 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
Sep 22 #PHP
php过滤HTML标签、属性等正则表达式汇总
Sep 22 #PHP
PHP中exec与system用法区别分析
Sep 22 #PHP
PHP-Java-Bridge使用笔记
Sep 22 #PHP
11个PHPer必须要了解的编程规范
Sep 22 #PHP
PHP正则替换函数preg_replace和preg_replace_callback使用总结
Sep 22 #PHP
php分页函数完整实例代码
Sep 22 #PHP
You might like
WordPress中给文章添加自定义字段及后台编辑功能区域
2015/12/19 PHP
Smarty模板引擎缓存机制详解
2016/05/23 PHP
redirect_uri参数错误的解决方法(必看)
2017/02/16 PHP
php使用crypt()函数进行加密
2017/06/08 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
PHP htmlspecialchars_decode()函数用法讲解
2019/03/01 PHP
网页开发中的容易忽略的问题 javascript HTML中的table
2009/04/15 Javascript
jQuery 添加/移除CSS类实现代码
2010/02/11 Javascript
基于jquery实现后台左侧菜单点击上下滑动显示
2013/04/11 Javascript
让复选框只能选择一项的方法
2013/10/08 Javascript
jquery.ui.draggable中文文档(原文翻译)
2013/11/15 Javascript
Bootstrap实现默认导航栏效果
2020/09/21 Javascript
Bootstrap学习笔记之css样式设计(2)
2016/06/07 Javascript
Jquery通过ajax请求NodeJS返回json数据实例
2016/11/08 NodeJs
React-Native中props具体使用详解
2017/09/04 Javascript
TypeScript基础入门教程之三重斜线指令详解
2018/10/22 Javascript
jquery实现动态创建form并提交的方法示例
2019/05/27 jQuery
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
Python类的定义、继承及类对象使用方法简明教程
2015/05/08 Python
python实现发送和获取手机短信验证码
2016/01/15 Python
Python简单实现查找一个字符串中最长不重复子串的方法
2018/03/26 Python
python反编译学习之字节码详解
2019/05/19 Python
python实现统计文本中单词出现的频率详解
2019/05/20 Python
python Pandas库基础分析之时间序列的处理详解
2019/07/13 Python
手机使用python操作图片文件(pydroid3)过程详解
2019/09/25 Python
wxpython绘制音频效果
2019/11/18 Python
使用python切片实现二维数组复制示例
2019/11/26 Python
django框架两个使用模板实例
2019/12/11 Python
Keras之自定义损失(loss)函数用法说明
2020/06/10 Python
Sperry官网:帆船鞋创始品牌
2016/09/07 全球购物
英国最大的海报商店:GB Posters
2018/03/20 全球购物
输入N,打印N*N矩阵
2012/02/20 面试题
行政人员工作职责
2013/12/05 职场文书
党的群众路线教育实践活动批评与自我批评
2014/02/16 职场文书
地球一小时倡议书
2014/04/15 职场文书
Python加密技术之RSA加密解密的实现
2022/04/08 Python