php 将CVS文件转换成数组的解决办法
内容摘要
这篇文章主要为大家详细介绍了php 将CVS文件转换成数组的简单示例,具有一定的参考价值,可以用来参考一下。
对CVS文件转换成php数组对此感兴趣的朋友,看看idc笔记做的技术笔记
对CVS文件转换成php数组对此感兴趣的朋友,看看idc笔记做的技术笔记
文章正文
这篇文章主要为大家详细介绍了php 将CVS文件转换成数组的简单示例,具有一定的参考价值,可以用来参考一下。
对CVS文件转换成php数组对此感兴趣的朋友,看看idc笔记做的技术笔记!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | <code class = "php" > /** * CVS文件转换成php数组 * * @param * @author php教程 www.idcnote.com **/ sample.csv ---------------- name,email 政府,gov@gov.gov ---------------- ======================================= <?php function str_to_csv( $row ) { if ( $row == '' ) { return array (); } $a = array (); $src = explode ( ',' , $row ); do { $p = array_shift ( $src ); while ( mb_substr_count( $p , '"' ) % 2 != 0 ) { if ( count ( $src )==0 ){ return false; } $p .= ',' . array_shift ( $src ); } $match = null; if ( preg_match( '/^"(.+)"[\r\n]*$/' , $p , $match )) { $p = $match [1]; } $a [] = str_replace ( '""' , '"' , $p ); } while ( count ( $src ) > 0 ); return $a ; } function file_getcsv( $f ) { $line = fgets ( $f ); while ( ( $a = str_to_csv( $line ))===false ) { if ( feof ( $f ) ){ return false; } $line .= "\n" . fgets ( $f ); } return $a ; } function file_to_csv( $filename ) { ini_set ( "auto_detect_line_endings" , true); $a = array (); $f = fopen ( $filename , 'r' ); while ( ! feof ( $f ) ) { $rec = file_getcsv( $f ); if ( $rec ===false ){ return false; } if ( ! empty ( $rec ) ) { $a [] = $rec ; } } fclose( $f ); return $a ; } $data = file_to_csv( 'sample.csv' ); echo '<pre>' ;print_r( $data ); /*** 来自php教程(www.idcnote.com) ***/ </code> |
注:关于php 将CVS文件转换成数组的简单示例的内容就先介绍到这里,更多相关文章的可以留意
代码注释