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 =",";
谢谢..
您可以使用辅助函数来检测最佳分隔符,例如:
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)
| 归档时间: |
|
| 查看次数: |
826 次 |
| 最近记录: |