使用str_getcsv有什么好处?

Lar*_*ars 2 php csv string escaping

如果我有一个字符串$myString = "apple, banana, cherry" ,我想将这些数据放入一个数组,那么我有两个选择.

$myArray = explode(", ", $myString)
Run Code Online (Sandbox Code Playgroud)

要么

$myArray = str_getcsv($myString)
Run Code Online (Sandbox Code Playgroud)

两者都给出相同的结果.

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

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

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

谢谢

mar*_*rio 11

str_getcsv 适用于CSV,例如:

 "column 1", "column 2", and the third part
 123, 567, 89
Run Code Online (Sandbox Code Playgroud)

它打开所有引用的部分,并从任一端剥离空格.

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

1,2,3, 4, 5,   6,   7
Run Code Online (Sandbox Code Playgroud)

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

"column 1 contains a , comma", "col 2 starts here"
Run Code Online (Sandbox Code Playgroud)

简单的爆炸将不知道对包含的逗号和空间的特殊处理.