【问题标题】:Convert a CSV file to force encapsilation转换 CSV 文件以强制封装
【发布时间】:2016-11-07 13:11:54
【问题描述】:

我的理想解决方案是一个函数,它可以采用没有强制封装的 CSV 文件(如果值没有空格或只是一个数字,则值周围没有引号)并将其转换为 CSV 文件,以确保每个字段用双引号括起来。

<?php

$raw_file = BASE_DIR."pathto/csv.csv";
$fixed_file = BASE_DIR."pathto/fixed.csv";

convert_file($raw_file, $fixed_file);

//move on with life!!
?>

感谢您的帮助!

【问题讨论】:

    标签: php csv export-to-csv


    【解决方案1】:

    使用fgetcsv 获取原始csv 文件的内容,使用fputcsv(使用第四个参数)构建封装文件。

    例如,假设您的列分隔符是;

    <?php
    
    $raw_file = BASE_DIR."pathto/csv.csv";
    $fixed_file = BASE_DIR."pathto/fixed.csv";
    
    // Getting contents
    $raw_handle = fopen($raw_file, 'r');
    $contents = array();
    while (($data = fgetcsv($raw_handle, 0, ';')) !== false) {
        $contents[] = $data;
    }
    fclose($raw_handle);
    
    // Putting contents
    $fixed_handle = fopen($fixed_file, 'w');
    foreach ($contents as $line) {
        fputcsv($fixed_handle, $line, ';', '"');
    }
    fclose($fixed_handle);
    
    //move on with life!!
    ?>
    

    【讨论】:

    • 感谢您的帮助.. 稍微修改一下这个方法效果很好!再次感谢您的回复,您拯救了我的夜晚!
    • 很高兴为您提供帮助!请将答案标记为已接受,以便它可以帮助遇到您的情况的其他人。
    猜你喜欢
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 2016-11-03
    • 2013-06-20
    • 2019-04-04
    • 1970-01-01
    相关资源
    最近更新 更多