您的位置:首页 > 编程语言 > PHP开发

php导出csv数据在浏览器中输出提供下载或保存到文件的示例

2014-04-24 10:53 1896 查看
/** * 导出数据到CSV文件 * @param array $data  数据 * @param array $title_arr 标题 * @param string $file_name CSV文件名 */function export_csv(&$data, $title_arr, $file_name = '') {    ini_set("max_execution_time", "3600");

    $csv_data = '';

    /** 标题 */    $nums = count($title_arr);    for ($i = 0; $i < $nums - 1; ++$i) {        $csv_data .= '"' . $title_arr[$i] . '",';    }

    if ($nums > 0) {     $csv_data .= '"' . $title_arr[$nums - 1] . "\"\r\n";    }

    foreach ($data as $k => $row) {        for ($i = 0; $i < $nums - 1; ++$i) {            $row[$i] = str_replace("\"", "\"\"", $row[$i]);            $csv_data .= '"' . $row[$i] . '",';        }        $csv_data .= '"' . $row[$nums - 1] . "\"\r\n";        unset($data[$k]);    }

    $csv_data = mb_convert_encoding($csv_data, "cp936", "UTF-8");

    $file_name = empty($file_name) ? date('Y-m-d-H-i-s', time()) : $file_name;

    if (strpos($_SERVER['HTTP_USER_AGENT'], "MSIE")) { // 解决IE浏览器输出中文名乱码的bug     $file_name = urlencode($file_name);     $file_name = str_replace('+', '%20', $file_name);    }

    $file_name = $file_name . '.csv';    header("Content-type:text/csv;");    header("Content-Disposition:attachment;filename=" . $file_name);    header('Cache-Control:must-revalidate,post-check=0,pre-check=0');    header('Expires:0');    header('Pragma:public');    echo $csv_data;}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php csv