| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | <?php/** * Created by PhpStorm. * User: Administrator * Date: 2022/8/10 * Time: 17:23 */namespace file;class CsvHelper{    /**     * 解析csv     * @param $filepath [文件完整路径]     * @return array [返回二维数组,解析结果]     */    public static function parse_csv($filepath)    {        $handle = fopen($filepath, 'r');//只读方式打开,将文件指针指向文件头]        $out = array();        $n = 0;        while ($data = fgetcsv($handle, 10000)) {            $num = count($data);            for ($i = 0; $i < $num; $i++) {                $row = mb_convert_encoding($data[$i], "UTF-8", "GBK");                $out[$n][$i] = $row;            }            $n++;        }        fclose($handle); //关闭指针        return $out;    }    /**     * 导出csv     * @param $titles [标题-数组]     * @param $data [内容-二维数组]     * @param string $filename [文件名]     */    public static function export_csv($titles, $data, $filename = "")    {        if (empty($filename)) {            $filename = date('Ymd') . '.csv';        }        $str = "";        if ($titles && is_array($titles)) {            foreach ($titles as $title) {                $str .= (empty($str) ? "" : ",") . $title;            }            $str = iconv('utf-8', 'gb2312', $str . PHP_EOL);        }        if ($data && is_array($data)) {            foreach ($data as $line) {                $line_str = "";                foreach ($line as $row) {                    $row_ = mb_convert_encoding($row, "GBK", "UTF-8");                    $line_str .= (empty($line_str) ? "" : ",") . $row_;                }                $str .= $line_str . PHP_EOL;            }        }        header("Content-type:text/csv");        header("Content-Disposition:attachment;filename=" . $filename);        header('Cache-Control:must-revalidate,post-check=0,pre-check=0');        header('Expires:0');        header('Pragma:public');        exit($str);    }}
 |