PHP操作csv文件导入+导出
发布日期:2025-05-04 11:22:34 浏览次数:5 分类:精选文章

本文共 2177 字,大约阅读时间需要 7 分钟。

PHP 导入和导出 CSV 文件

在 PHP 开发中,CSV 文件的处理是非常常见的操作。以下是关于如何将数据导入和导出 CSV 文件的详细说明。


一、PHP 导入 CSV 文件

要实现从 CSV 文件中读取数据,可以编写一个函数来获取指定行数的数据。以下是一个示例函数:

function csv_get_lines($csvfile, $lines, $offset = 0) {    if (!$fp = fopen($csvfile, 'r')) {        return false;    }    $i = $j = 0;    // 跳过起始行数    while (false !== ($line = fgets($fp))) {        if ($i++ < $offset) {            continue;        }        break;    }    $data = array();    // 读取指定行数的数据    while ($j++ < $lines && !feof($fp)) {        $data[] = fgetcsv($fp);    }    fclose($fp);    return $data;}

使用方法:

  • 将 CSV 文件路径传递给函数。
  • 指定要读取的行数。
  • 可选设置起始行数。
  • 函数将返回一个二维数组,其中每个单元格对应 CSV 文件的一行数据。

  • 二、PHP 导出 CSV 文件

    将数据导出为 CSV 文件时,可以使用以下函数来生成符合 CSV 格式的文件内容:

    function csv_export($data, $titleList = array(), $fileName = '') {    @ini_set("max_execution_time", "3600");    $csvData = '';        // 处理标题    $nums = count($titleList);    for ($i = 0; $i < $nums - 1; $i++) {        $csvData .= '"' . $titleList[$i] . '",';    }    if ($nums > 0) {        $csvData .= '"' . $titleList[$nums - 1] . "\"\r\n";    }        // 处理数据    foreach ($data as $key => $row) {        $i = 0;        foreach ($row as $_key => $_val) {            $_val = str_replace("\"", "\"\"", $_val);            if ($i < ($nums - 1)) {                $csvData .= '"' . $_val . '",';            } else {                $csvData .= '"' . $_val . "\"\r\n";            }            $i++;        }        unset($data[$key]); // 去掉数组键    }        // 转换编码并保存文件    $csvData = mb_convert_encoding($csvData, "cp936", "UTF-8");    $fileName = empty($fileName) ? date('Y-m-d-H-i-s', time()) : $fileName;    $fileName .= '.csv';        // 设置响应头并输出    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');    echo $csvData;    die();}

    使用方法:

  • 将要导出的数据数组传递给函数。
  • 可选传递标题数组,用于生成 CSV 文件的表头。
  • 可选指定 CSV 文件名称,默认使用当前时间生成文件名。
  • 函数会自动弹出下载框,生成符合 CSV 格式的文件。

  • 注意事项:

    • 文件路径:确保 CSV 文件路径正确,避免路径错误。
    • 数据格式:在导出前,建议对数据进行适当的处理,确保字符无特殊符号或转义字符。
    • 编码转换:使用 mb_convert_encoding 将 UTF-8 转换为目标编码(如 cp936),以避免字符显示问题。

    通过以上方法,您可以轻松地在 PHP 中完成 CSV 文件的导入和导出,方便数据的存储和分享。

    上一篇:php操作mysql用select_php如何操作mysql获取select 结果
    下一篇:php接收formdata上传的多个文件,使用formData()上传多个文件

    发表评论

    最新留言

    能坚持,总会有不一样的收获!
    [***.219.124.196]2026年06月17日 16时52分10秒