在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));
}