我无法使用 php 读取制表符分隔的 csv 文件(是的,我知道它的 csv 而没有 tsv,而 c 用于制表符...)并将其分开。当我用 echo 或 readfile 发出我导入的数据时,所有制表符都被空格替换,我不能使用空格作为分隔符。实际上我有点困惑,当我使用谷歌时这个问题并不常见,所以也许我是问题所在......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
2 回答
繁星coding
TA贡献1797条经验 获得超4个赞
您应该使用已经具有读取 tsv 功能的fgetcsv 函数。
像这样:
$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 分隔符,也许本文可以帮助您。
梦里花落0921
TA贡献1772条经验 获得超6个赞
在 PHP 中读取 CSV 文件时,最好使用fgetcsv函数。有了它,您可以指定文件的分隔符。该函数将输出文件的一行。你的分隔符应该是"\t"
.
- 2 回答
- 0 关注
- 320 浏览
添加回答
举报
0/150
提交
取消