PHP----CSV文件处理类
2016-01-21 11:07
661 查看
CVS文件的导入和导出php类
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('aaa', '123456', 'aaa@yahoo.com'), 1 => array('bbb', '213456', 'bbb@yahoo.com'), 2 => array('ccc', '123456', 'ccc@yahoo.com') )); $column = 3; $csv = new Csv($param_arr, $column); $csv->export(); //下载 $path = 'd:/tmp.csv'; $import_arr = $csv->import($path, 3);
相关文章推荐
- springmvc导出页面上展示的数据到cvs文件
- thinkphp3.2视频教程下载,百度网盘
- PHPCMS v9 安全防范教程!
- PHPExcel导入数据
- php程序备份还原mysql数据库
- PHP中用var_export和serialize做数组缓存的性能测试
- FreeRADIUS+DaloRADIUS实现PPTP ***高级用户控制+流量控制
- kafka-php
- php类型转换的3种方法
- phpstorm快捷键
- PHP中的闭包详解
- php简易生成excel文件
- phpcms tag
- MFC中SliderCtrl控件中SetPos(0)失效问题解决
- UBOOT-2010.06 移植 支持 下载yaffs2文件系统 (九)
- ThinkPHP去除url中的index.php
- Day 3:php+mysql留言板的设计
- 在信号处理函数中调用非可重入函数getpwnam
- 招聘:PHP高级工程师(PHP开发主管)
- PHP内核探索:Zend虚拟机