我有一个.csv模板,希望人们填写,保存并上传.
问题是这样的,假设某些用户会在行中插入隐藏的换行符,而在使用fgetcsv()时,它将输出被隐藏的换行符中断的行.
如何避免换行或清理数据?
可能的解决方案:
假设第一行是正确的,$count =计算分隔符的数量,直到换行,只要$count,就将文本重建为数组;
但我认为有更好的选择.
后期编辑
这是输入*重要[! ]:excel文件中的数据是“精细”的,没有损坏,只有一行!!!将其另存为csv文件并在记事本中打开将显示以下内容
asd;"asd
asd
asd";asd;asd
这是代码
$handle = fopen("file.csv","r");
$data = fgetcsv($handle,";");
while($data = fgetcsv($handle)) {
$array = explode(";",$data[0]);
print_r($array);
}
fclose($handle);
这是回显的数据
Array ( [0] => asd [1] => "asd ) Array ( [0] => asd ) Array ( [0] => asd" [1] => asd [2] => asd [3] => )
谢谢
解决方法:
如果对字段进行了正确的引用,那么测试您的案例并查看没有损坏的行非常容易.
因此,像这样的CSV行
1,"joe
""Big Coyote""
Hopkins",598600
将被阅读,没有一个单一的问题.
标签:csv,php
来源: https://codeday.me/bug/20191102/1989037.html