PHP CSV文件导入和导出类解析
内容摘要
这篇文章主要为大家详细介绍了PHP CSV文件导入和导出类解析,具有一定的参考价值,可以用来参考一下。
对CSV 文件的导入和导出PHP类对此感兴趣的朋友,看看idc笔记做的技术笔记!
对CSV 文件的导入和导出PHP类对此感兴趣的朋友,看看idc笔记做的技术笔记!
文章正文
这篇文章主要为大家详细介绍了PHP CSV文件导入和导出类解析,具有一定的参考价值,可以用来参考一下。
对CSV 文件的导入和导出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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | <code class = "php" > /** * CSV 文件的导入和导出PHP类 * * @param * @arrange 512-笔记网: 512PiC.com **/ class Csv{ public $csv_array ; //csv数组数据 public $csv_str ; //csv文件数据 public function __construct( $param_arr , $column ){ $this ->csv_array = $param_arr ; $this ->path = $path ; $this ->column = $column ; } /** * 导出 * */ public function export(){ if ( empty ( $this ->csv_array) || empty ( $this ->column)){ return false; } $param_arr = $this ->csv_array; unset( $this ->csv_array); $export_str = implode( ',' , $param_arr [ 'nav' ]). "n" ; unset( $param_arr [ 'nav' ]); //组装数据 foreach ( $param_arr as $k => $v ){ foreach ( $v as $k1 => $v1 ){ $export_str .= implode( ',' , $v1 ). "n" ; } } //将$export_str导出 header( "Cache-Control: public" ); header( "Pragma: public" ); header( "Content-type:application/vnd.ms-excel" ); header( "Content-Disposition:attachment;filename=txxx.csv" ); header( 'Content-Type:APPLICATION/OCTET-STREAM' ); ob_start(); // $file_str= iconv("utf-8",'gbk',$export_str); ob_end_clean(); echo $export_str ; } /** * 导入 * */ public function import( $path , $column = 3){ $flag = flase; $code = 0; $msg = '未处理' ; $filesize = 1; //1MB $maxsize = $filesize * 1024 * 1024; $max_column = 1000; //检测文件是否存在 if ( $flag === flase){ if (! file_exists ( $path )){ $msg = '文件不存在' ; $flag = true; } } //检测文件格式 if ( $flag === flase){ $ext = preg_replace( "/.*.([^.]+)/" , "$1" , $path ); if ( $ext != 'csv' ){ $msg = '只能导入CSV格式文件' ; $flag = true; } } //检测文件大小 if ( $flag === flase){ if ( filesize ( $path )> $maxsize ){ $msg = '导入的文件不得超过' . $maxsize . 'B文件' ; $flag = true; } } //读取文件 if ( $flag == flase){ $row = 0; $handle = fopen ( $path , 'r' ); $dataArray = array (); while ( $data = fgetcsv ( $handle , $max_column , "," )){ $num = count ( $data ); if ( $num < $column ){ $msg = '文件不符合规格真实有:' . $num . '列数据' ; $flag = true; break ; } if ( $flag === flase){ for ( $i =0; $i <3; $i ++){ if ( $row == 0){ break ; } //组建数据 $dataArray [ $row ][ $i ] = $data [ $i ]; } } $row ++; } } return $dataArray ; } } $param_arr = array ( 'nav' => array ( '用户名' , '密码' , '邮箱' ), array (0=> array ( 'xiaohai1' , '123456' , 'xiaohai1@zhongsou.com' ), 1=> array ( 'xiaohai2' , '213456' , 'xiaohai2@zhongsou.com' ), 2=> array ( 'xiaohai3' , '123456' , 'xiaohai3@zhongsou.com' ) )); $column = 3; $csv = new Csv( $param_arr , $column ); //$csv->export(); $path = 'C:Documents and SettingsAdministratorLocal SettingsTemptxxx.csv' ; $import_arr = $csv ->import( $path ,3); var_dump( $import_arr ); /*** 来自php教程(www.idcnote.com) ***/ </code> |
注:关于PHP CSV文件导入和导出类解析的内容就先介绍到这里,更多相关文章的可以留意
代码注释