我无法读取制表器分离的csv文件(是的,我知道它的csv,没有tsv,c表示制表器...)与php和分离它的权利。当我使用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发布于 2019-06-18 22:09:23
在PHP中读取CSV文件时,最好使用fgetcsv函数。使用它,您可以指定文件的分隔符。该函数将输出文件的一行。您的分隔符应为"\t"。
发布于 2019-06-18 22:16:24
你应该使用已经有功能的fgetcsv function来读取tsv。
如下所示:
$uploadData = [];
if (($handle = fopen("test.csv", "r")) !== false) {
while (($data = fgetcsv($handle, 0, "\t")) !== false) {
$uploadData[] = $data;
}
fclose($handle);
}如果你想把tsv转换成csv,你可以使用反函数fputcsv
$fh = fopen('file.csv');
foreach ($uploadData as $datum) {
fputcsv($fh, $datum);
}
fclose($fh);如果你想自动检测csv分隔符,也许this article可以帮助你。
https://stackoverflow.com/questions/56650883
复制相似问题