【发布时间】:2015-01-13 16:19:57
【问题描述】:
我在用 PHP 处理字符串时遇到了一点问题。
想象一个包含这些字段的 CSV 文件:
ItemID;ItemText;ItemVAT;ItemEAN;
很明显,这个字符串中的分隔符是“;”。问题是,来自“ItemText”的值可能也包含“;”。
我需要过滤这些字符串并替换包含“;”与“#”或“$”之类的其他内容无关。我试着数“;”用substr_count 确定我是否有一个额外的“;” (与“正常”值字符串的计数相比)。但我不知道如何找到实际的“;”在价值。为了使事情变得更难,可以有多个“;”在值字符串中。
有人知道如何过滤这些不必要的“;”吗?
【问题讨论】:
-
除非您知道每个字段的格式,否则一般没有真正的方法可以做到这一点。我猜 ItemText 是唯一可以包含额外
;的字段? -
是的,ItemText 是唯一一个可以包含额外的
;。 -
好的然后找到第一个
;的索引。其后的下一个k-4分号是无关的,其中k是字符串中分号的数量。 -
你可以做一个多于1个字符的分隔符|*| :)
-
谢谢,我试试这个。 @Shibi 我从 API 获取这种格式的 CSV。我对使用的分隔符没有影响。