有啥方法可以在CSV中输入用逗号分隔的数字?
Posted
技术标签:
【中文标题】有啥方法可以在CSV中输入用逗号分隔的数字?【英文标题】:Any way to input numbers separated by comma in CSV?有什么方法可以在CSV中输入用逗号分隔的数字? 【发布时间】:2020-01-08 08:36:33 【问题描述】:我需要上传一个包含逗号分隔数字的 CSV 文件。
有什么办法不让它将选项卡解释为 CSV 分隔符? 还是我必须使用 TSV 文件?
【问题讨论】:
值应该用引号括起来,例如:Value,"1,2,3",42
。然后php可以正确处理这个。或者确实使用另一个分隔符 - 制表符或;
,但不是,
。
到目前为止你写的代码是什么?
这能回答你的问题吗? Is there a way to include commas in CSV columns without breaking the formatting?
【参考方案1】:
您可以在使用fgetcsv函数时更改多种设置:
fgetcsv ( resource $handle [, int $length = 0 [, string $delimiter = "," [, string $enclosure = '"' [, string $escape = "\\" ]]]] )
您可以将分隔符设置为您想要的任何字符(空格、制表符、竖线等)。
如果您需要包含通常会破坏文件格式的内容(例如,当逗号用作分隔符时,内容中包含逗号),请使用附件。默认为双引号。例如:
身份证,姓名
1,泰德·门德
2,特蕾西·盖尔
4,小约翰·迪
ID 为 4 的行会破坏文件,因为名称中有一个逗号,但是用包围字符包裹它会告诉解析器忽略其中的破坏字符。以下是有效的,并且 Jr 之前的逗号不会导致错误或误读行:
身份证,姓名
1,“特德·门德”
2、《特蕾西·盖尔》
4,“小约翰迪”
如果您仍然需要在封闭的字符串中使用它(例如,双引号内容中的双引号),则使用最后一个参数,转义字符。您可以将转义字符放在双引号内容中的任何双引号字符之前,以确保它不会破坏格式:
id、标题、类型
1、“上”、“电影”
2、《乱世佳人》、《电影》
3, "\"巫师 3\"", "电子游戏"
请注意,在视频游戏标题中的双引号之前有一个反斜杠。这允许解析器知道标题周围的双引号应该是标题字符串的一部分,而不是列内容的结尾。
【讨论】:
以上是关于有啥方法可以在CSV中输入用逗号分隔的数字?的主要内容,如果未能解决你的问题,请参考以下文章