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)
简单的爆炸将不知道对包含的逗号和空间的特殊处理.