使用str_getcsv有什么好处?

时间:2013-03-16 00:55:09

标签: php string csv escaping

如果我有一个字符串$myString = "apple, banana, cherry" 我想把这些数据放到一个数组中,然后我有两个选择。

$myArray = explode(", ", $myString)

$myArray = str_getcsv($myString)

两者都给出相同的结果。

有人可以解释使用这些方法之一的优势/劣势吗?

我听说str_getcsv更好,根据php手册“因为explode()不会正确处理字符串或转义字符的可能封闭部分。”

任何人都可以借助一个简单的例子来解释这意味着什么吗?

由于

1 个答案:

答案 0 :(得分:10)

str_getcsv适用于CSV,例如:

 "column 1", "column 2", and the third part
 123, 567, 89

它展开所有引用的部分,并从两端剥去空格。

现在你的简单爆炸也会进行空间修剪。但如果它存在一些差异,它将失败/不太可靠:

1,2,3, 4, 5,   6,   7

如果你确定总是一个逗号,每个位后有一个空格,那么explode(", "就足够了。但str_getcsv更聪明一些。它还允许在引号中使用分隔符,因为手动提示暗示:

"column 1 contains a , comma", "col 2 starts here"

如果简单的爆炸将不知道对包含的逗号和空格的特殊处理。