This article mainly introduces the PHP implementation of the import and export class of CSV files, and analyzes the operation skills of PHP for csv files with examples. , very practical value, friends in need can refer to it
The example in this article describes the import and export classes of CSV files implemented in PHP. Share it with everyone for your reference. The details are as follows:
?
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 |
/** * CSV file processing class */ class Csv{ public $csv_array; //csv array data public $csv_str; //csv file data public function __construct($param_arr, $column){ $this->csv_array = $param_arr; $this->path = $path; $this->column = $column; } /** * Export **/ 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']); //Assemble data foreach($param_arr as $k=>$v){ foreach($v as $k1=>$v1){ $export_str .= implode(',',$v1)."n"; } } //Export $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; } /** * import * */ public function import($path,$column = 3){ $flag = flase; $code = 0; $msg = 'Unprocessed'; $filesize = 1; //1MB $maxsize = $filesize * 1024 * 1024; $max_column = 1000;
//Check whether the file exists if($flag === flase){ if(!file_exists($path)){ $msg = 'File does not exist'; $flag = true; } } //Detect file format if($flag === flase){ $ext = preg_replace("/.*.([^.] )/","$1",$path); if($ext != 'csv'){ $msg = 'Only CSV format files can be imported'; $flag = true; } } //Detect file size if($flag === flase){ if(filesize($path)>$maxsize){ $msg = 'The imported file must not exceed'.$maxsize.'B file'; $flag = true; } } //Read file if($flag == flase){ $row = 0; $handle = fopen($path,'r'); $dataArray = array(); while($data = fgetcsv($handle,$max_column,",")){ $num = count($data); if($num < $column){ $msg = 'The file does not meet the specifications and actually contains: '.$num.' column data'; $flag = true; break; } if($flag === flase){ for($i=0;$i<3;$i ){ if($row == 0){ break; } //Build data $dataArray[$row][$i] = $data[$i]; } } $row ; } } return $dataArray; } } $param_arr = array( 'nav'=>array('username','password','email'), 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 SettingsAdministratorTemptxxx.csv'; $import_arr = $csv->import($path,3); var_dump($import_arr); ?> |
I hope this article will be helpful to everyone’s PHP programming design.