博主辛苦了,我要打赏银两给博主,犒劳犒劳站长。
【摘要】在网站开发中对于csv文件的操作还是蛮多的,例如将csv文件中的导入到Mysql数据库中,将Mysql数据库中的数据导出到csv文件中,实现数据的备份,本文记录一下PHP对CSV文件的这两种操作。
PHP操作主要涉及到两个PHP内置函数:
fputcsv():将行格式化为 CSV 并写入文件指针
fgetcsv():从文件指针中读入一行并解析 CSV 字段
PHP通过这两个函数就可以实现对csv文件的读和写,当然另外是需要用到文件操作函数fopen()、fclose(),其实实现起来并不复杂,接下来就是给出这两个函数的实例。
首先,创建一个csv文件,写入如下内容:
读取并显示 CSV 文件的整个内容:
echo '<meta charset = "utf-8" />';
$row = 1;
if (($handle = fopen("0001.csv", "r")) !== FALSE)
{
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
{
$num = count($data);
echo "<p>第 $row 行的内容:共 $num 列</p>";
++$row;
for ($c=0; $c < $num; $c++)
{
// 注意中文乱码问题,这一行代码非常中,如果没有这行,则会出现中文乱码
$data[$c]=iconv("gbk", "utf-8//IGNORE",$data[$c]);
echo $data[$c] . ",";
}
echo '<br />';
}
fclose($handle);
}
输出的结果如下面截图所示:
fputcsv():将一行(用 fields 数组传递)格式化为 CSV 格式并写入由 handle 指定的文件
同样,首先也是数据,这里的数据就不从数据库里读取出来了,直接使用一个数组array来表示从数据库中获取的,将要写入到csv文件中:
$data = array(
0 => array(
'id' => 'id',
'name' => 'name',
'age' => 'age',
'sex' => 'sex'
),
1 => array(
'id' => 1,
'name' => '小小人',
'age' => 10,
'sex' => '男'
),
2 => array(
'id' => 2,
'name' => '天下第二',
'age' => 20,
'sex' => '男'
)
);
然后是写入到csv文件中:
// 已读的方式打开0002.csv文件,若0002.csv不存在,则尝试创建它
// 这里如果统一使用字符集utf-8的话,就不会出现中文乱码
$handle = fopen('0002.csv','w');
foreach($data as $k => $fields)
{
fputcsv($handle, $fields);
}
fclose($handle);
执行结果截图如下:
版权归 马富天PHP博客 所有
本文链接地址:http://www.mafutian.net/161.html
转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^
顶0
踩0
评论审核未开启 |