在php中读取操作csv文件的方法有很多,最简单的可以直接使用fopen像打开txt文件打开,然后利用explode按, 分开就成了,生成也一样直接使用a,b,c,e保存成csv格式就KO,但php还提供了fputcsv函数对csv文件操作,下面我来介绍介绍。
1.生成CVS,fputcsv()将行格式化为 CSV 并写入文件指针
代码如下 |
复制代码 |
<?php $list = array ( 'aaa,bbb,ccc,dddd', '11,22,33', '"php","java"' ); $fp = fopen('file.csv', 'w'); foreach ($list as $line) { fputcsv($fp, explode(',', $line)); } fclose($fp); ?> |
小提示,如果你csv中有中文我们需要注意一下中文问题,否则中文乱码就会和你在一起玩哦,下面给了一个实例解决中文乱码。
代码如下 |
复制代码 |
<?php /** by http://www.phprm.com */ $row = 1; $handle = fopen("file.csv","r"); //fgetcsv() 解析读入的行并找出 CSV格式的字段然后返回一个包含这些字段的数组。 while ($data = fgetcsv($handle, 1000, ",")) { $num = count($data); echo "<p> $num fields in line $row: <br>n"; $row++; for ($c=0; $c < $num; $c++) { //注意中文乱码问题 $data[$c]=iconv("gbk", "utf-8//IGNORE",$data[$c]); echo $data[$c] . "<br>n"; } } fclose($handle); ?> |
读取csv文件的某一行数据
代码如下 |
复制代码 |
<?php function get_file_line( $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); ?> |
读取csv文件制定行数(行区间)
代码如下 |
复制代码 |
<?php function get_file_line( $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; } $aa = get_file_line("windows_2011_s.csv", 11, 20); //从第11行到第20行 foreach ($aa as $bb){ echo $bb."<br>"; } ?> |
永久地址:http://www.phprm.com/database/48230.html
转载随意~请带上教程地址吧^^