我无法使用php读取制表符分隔的csv文件(是的,我知道它的csv和no tsv,并且c用于制表符...),并将其正确分隔。当我用echo或readfile给出导入的数据时,所有制表符都被空格代替,并且我不能使用空格作为分隔符。
实际上,我对使用Google时这个问题不是很普遍感到有些困惑,所以也许是我的问题...
XAMPP v3.2.3和PHP版本7.3.5存在问题
$tempFile = fopen($tempFilePath, "r");
$uploadData = fread($tempFile, filesize($tempFilePath));
fclose($tempFile);
echo $uploadData;
$uploadData = str_replace('"','',$uploadData);
$uploadData = str_replace('\r\n','\n',$uploadData);
$uploadData = str_replace('\r','\n',$uploadData);
$uploadData = str_replace(';',',',$uploadData);
$uploadData = str_replace('\t',',',$uploadData); //Here i'm trying to replace the tabulator with a colon to work with it afterwards
答案 0 :(得分:0)
在PHP中读取CSV文件时,最好使用fgetcsv函数。使用它可以指定文件的分隔符。该函数将输出文件的一行。您的决定者应为"\t"
。
答案 1 :(得分:0)
您应该使用fgetcsv function,该功能已经具有读取tsv的功能。
赞:
thenApply(Function<? super T, ? extends U> fn)
handle(BiFunction<? super T, Throwable, ? extends U> fn)
如果要将tsv转换为csv,可以使用反函数fputcsv:
$uploadData = [];
if (($handle = fopen("test.csv", "r")) !== false) {
while (($data = fgetcsv($handle, 0, "\t")) !== false) {
$uploadData[] = $data;
}
fclose($handle);
}
如果您想自动检测csv分隔符,也许this article可以为您提供帮助。