在分隔符(;)和分隔符(,)上爆炸csv文件?

Eye*_*ing 6 php csv codeigniter

当我在分隔符(;)上爆炸csv文件时,在某些excel程序中成功爆炸并在其他程序中失败

当我在分隔符(,)上爆炸csv文件时,在某些excel程序中成功爆炸并在其他程序中失败

如何在excel的所有版本中进行爆炸?我怎么知道爆炸的完美分隔符?

是的,有代码..

if (!function_exists('create_csv')) {
    function create_csv($query, &$filename = false, $old_csv = false) {
        if(!$filename) $filename = "data_export_".date("Y-m-d").".csv";
        $ci = &get_instance();
        $ci->load->helper('download');
        $ci->load->dbutil();
        $delimiter = ";";
        $newline = "\r\n";
        $csv = "Data:".date("Y-m-d").$newline;
        if($old_csv)
            $csv .= $old_csv;
        else
            $csv .= $ci->dbutil->csv_from_result($query, $delimiter, $newline);
        $columns = explode($newline, $csv);
        $titles = explode($delimiter, $columns[1]);
        $new_titles = array();
        foreach ($titles as $item) {
            array_push($new_titles, lang(trim($item,'"')));
        }
        $columns[1] = implode($delimiter, $new_titles);
        $csv = implode($newline, $columns);
        return $csv;
    }
}
Run Code Online (Sandbox Code Playgroud)

有时我把$ delimiter =";"; 和sometims $ delimiter =",";

谢谢..

MAM*_*ogr 1

您可以使用辅助函数来检测最佳分隔符,例如:

public function find_delimiter($csv)
{
    $delimiters = array(',', '.', ';');
    $bestDelimiter = false;
    $count = 0;
    foreach ($delimiters as $delimiter)
        if (substr_count($csv, $delimiter) > $count) {
            $count = substr_count($csv, $delimiter);
            $bestDelimiter = $delimiter;
        }
    return $bestDelimiter;
}
Run Code Online (Sandbox Code Playgroud)