gpt4 book ai didi

php - 如何确定 CSV 文件字段是制表符分隔还是逗号分隔?

转载 作者:行者123 更新时间:2023-12-03 00:26:11 25 4
gpt4 key购买 nike

我正在尝试确定 CSV 文件字段是制表符分隔还是逗号分隔?我需要对此进行 PHP 验证。

我如何确定这一点?

最佳答案

现在回答这个问题已经太晚了,但希望它能对某人有所帮助。

这是一个简单的函数,它将返回文件的分隔符。

function getFileDelimiter($file, $checkLines = 2){
$file = new SplFileObject($file);
$delimiters = array(
',',
'\t',
';',
'|',
':'
);
$results = array();
$i = 0;
while($file->valid() && $i <= $checkLines){
$line = $file->fgets();
foreach ($delimiters as $delimiter){
$regExp = '/['.$delimiter.']/';
$fields = preg_split($regExp, $line);
if(count($fields) > 1){
if(!empty($results[$delimiter])){
$results[$delimiter]++;
} else {
$results[$delimiter] = 1;
}
}
}
$i++;
}
$results = array_keys($results, max($results));
return $results[0];
}

使用该函数如下所示:

$delimiter = getFileDelimiter('abc.csv'); //Check 2 lines to determine the delimiter
$delimiter = getFileDelimiter('abc.csv', 5); //Check 5 lines to determine the delimiter

P.S 我使用了 preg_split() 而不是explode(),因为explode('\t', $value) 不会给出正确的结果。

更新:感谢@RichardEB 指出代码中的错误。我现在已经更新了。

关于php - 如何确定 CSV 文件字段是制表符分隔还是逗号分隔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3395267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com