PHP操作csv文件代码详解
在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 HdhCmsTestphpfensi测试数据 */ $row = 1; $handle = fopen ( "file.csv" , "r" ); //fgetcsv() 解析读入的行并找出 CSV格式的字段然后返回一个包含这些字段的数组。 while ( $data = fgetcsv ( $handle , 1000, "," )) { //开源代码phpfensi测试数据 $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>" ; } ?>查看更多关于PHP操作csv文件代码详解 - php高级应用的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did30474