php生成(导出)csv文件的函数示例

发布时间:2020-07-17编辑:脚本学堂
在php5.1以上的版本中,php导出csv或生成csv文件,可以用函数fputcsv来实现,但早期的版本中就只能自己实现了,这里分享一个自定义的函数,供大家参考。

需求:
生成所有注册用户的.csv文件。
PHP 5 >= 5.1.0RC1中有默认函数 fputcsv(),可以这样使用:
 

复制代码 代码示例:
<?php
$list = array (
     'aaa,bbb,ccc,dddd',
     '123,456,789',
     '"aaa","bbb"'
   );
  $fp = fopen('file.csv', 'w');
  foreach ($list as $line) {
      fputcsv($fp, split(',', $line));
  fclose($fp);
  }

不过低版本的php中没有这样的内置函数,可以自己实现一个自定义函数
 

复制代码 代码示例:
<?php
function fputcsv4($fh, $arr){
    $csv = "";
    while (list($key, $val) = each($arr))
    {
    $val = str_replace('"', '""', $val);
    $csv .= '"'.$val.'",';
    }
    $csv = substr($csv, 0, -1);
    $csv .= "n";
    if (!@fwrite($fh, $csv))
    return FALSE;
        }

如此就可以将数据库读出来的数组转化写入csv文件。

代码:
 

复制代码 代码示例:
<?php
$users = $this->mdMemUsers->findBysql($sql);
$i = 0;
foreach($users as $vo){
    $content[$i] =  implode(',',$vo);
    $i++;
}
$fp = fopen('users.csv', 'w');
foreach ($content as $line) {
   fputcsv4($fp, split(',', $line));
}