如果我有一个字符串$myString = "apple, banana, cherry"
我想把这些数据放到一个数组中,然后我有两个选择。
$myArray = explode(", ", $myString)
或
$myArray = str_getcsv($myString)
两者都给出相同的结果。
有人可以解释使用这些方法之一的优势/劣势吗?
我听说str_getcsv更好,根据php手册“因为explode()不会正确处理字符串或转义字符的可能封闭部分。”
任何人都可以借助一个简单的例子来解释这意味着什么吗?
由于
答案 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"
如果简单的爆炸将不知道对包含的逗号和空格的特殊处理。