3

如果我有一个字符串$myString = "apple, banana, cherry" 并且我想将此数据放入一个数组中,那么我有两个选择。

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

或者

$myArray = str_getcsv($myString)

两者都给出相同的结果。

任何人都可以解释使用其中一种方法相对于另一种方法的优点/缺点吗?

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

谁能借助一个简单的例子来解释这意味着什么?

谢谢

4

1 回答 1

12

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"

简单的爆炸不会意识到对包含的逗号和空格的特殊处理。

于 2013-03-16T01:07:47.897 回答