Home  >  Article  >  Backend Development  >  Import and export php class code for CVS files

Import and export php class code for CVS files

WBOY
WBOYOriginal
2016-07-25 08:43:231076browse

PHP class code for importing and exporting CVS files. Through this custom PHP class, the conversion of database data and CVS files can be realized

  1. /**
  2. *CSV file processing class
  3. */
  4. class Csv{
  5. public $csv_array; //csv array data
  6. public $csv_str; //csv file data
  7. public function __construct($param_arr, $column){
  8. $this->csv_array = $param_arr;
  9. $this-> path = $path;
  10. $this->column = $column;
  11. }
  12. /**
  13. * Export
  14. **/
  15. public function export(){
  16. if(empty($this->csv_array) || empty ($this->column)){
  17. return false;
  18. }
  19. $param_arr = $this->csv_array;
  20. unset($this->csv_array);
  21. $export_str = implode(',',$param_arr ['nav'])."n";
  22. unset($param_arr['nav']);
  23. //Assemble data
  24. foreach($param_arr as $k=>$v){
  25. foreach($v as $ k1=>$v1){
  26. $export_str .= implode(',',$v1)."n";
  27. }
  28. }
  29. //Export $export_str
  30. header( "Cache-Control: public" );
  31. header( "Pragma: public" );
  32. header("Content-type:application/vnd.ms-excel");
  33. header("Content-Disposition:attachment;filename=txxx.csv");
  34. header(' Content-Type:APPLICATION/OCTET-STREAM');
  35. ob_start();
  36. // $file_str= iconv("utf-8",'gbk',$export_str);
  37. ob_end_clean();
  38. echo $export_str;
  39. }
  40. /**
  41. * Import
  42. **/
  43. public function import($path,$column = 3){
  44. $flag = flase;
  45. $code = 0;
  46. $msg = 'Unprocessed';
  47. $filesize = 1; //1MB
  48. $maxsize = $filesize * 1024 * 1024;
  49. $max_column = 1000;
  50. //Check whether the file exists
  51. if($flag === flase){
  52. if(!file_exists($path) ){
  53. $msg = 'File does not exist';
  54. $flag = true;
  55. }
  56. }
  57. //Detect file format
  58. if($flag === flase){
  59. $ext = preg_replace("/.*. ([^.]+)/","$1",$path);
  60. if($ext != 'csv'){
  61. $msg = 'Only CSV format files can be imported';
  62. $flag = true;
  63. }
  64. }
  65. //Detect file size
  66. if($flag === flase){
  67. if(filesize($path)>$maxsize){
  68. $msg = 'Imported files must not exceed'.$maxsize. 'B file';
  69. $flag = true;
  70. }
  71. }
  72. //Read file
  73. if($flag == flase){
  74. $row = 0;
  75. $handle = fopen($path,'r' );
  76. $dataArray = array();
  77. while($data = fgetcsv($handle,$max_column,",")){
  78. $num = count($data);
  79. if($num < $column) {
  80. $msg = 'The file does not meet the specifications. True: '.$num.' column data';
  81. $flag = true;
  82. break;
  83. }
  84. if($flag === flase){
  85. for($ i=0;$i<3;$i++){
  86. if($row == 0){
  87. break;
  88. }
  89. //Build data
  90. $dataArray[$row][$i] = $data[$i ];
  91. }
  92. }
  93. $row++;
  94. }
  95. }
  96. return $dataArray;
  97. }
  98. }
  99. $param_arr = array(
  100. 'nav'=>array('username','password',' Email'),
  101. array(0=>array('xiaohai1','123456','xiaohai1@zhongsou.com'),
  102. 1=>array('xiaohai2','213456','xiaohai2@zhongsou. com'),
  103. 2=>array('xiaohai3','123456','xiaohai3@zhongsou.com')
  104. ));
  105. $column = 3;
  106. $csv = new Csv($param_arr, $column );
  107. //$csv->export();
  108. $path = 'C:Documents and SettingsAdministratorLocal SettingsTemptxxx.csv';
  109. $import_arr = $csv->import($path,3);
  110. var_dump($ import_arr);
  111. ?>
Copy code

CVS, php


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn