我正在使用下面的代码部分,无法让 explode() 函数工作。
$a="E:'xampp'htdocs'magento162'media'catalog'product'c'o'colorch091001-black-2.jpg";
$b=explode("'",$a);
print_r($b);
为什么上面的代码没有输出。IDE 提供了提示,指出存在错误,但我不知道在哪里。
谢谢。
最有可能的是,您必须将反斜杠"''"转义为双反斜杠"''''",无论是在$a
还是在("'"...
中都变成了explode("''", $a);
甚至StackOverflow的语法突出显示也告诉您存在错误:)(看到你的print_r
红色了吗?:)
$a="E:''xampp''htdocs''magento162''media''catalog''product''c''o''colorch091001-black-2.jpg";
$b=explode("''",$a);
编辑:我将进一步解释:在双引号字符串中,如 "...."
,反斜杠用于转义一些特殊字符,例如:
' = 换行符,
''t = 制表符,
''" = 一个双引号,顺便说一下,它会生成语法错误,因为字符串没有"完成",解析器将,$a);
和其余部分视为字符串的延续...,
因此,在某些情况下,'
本身并不是"真实"字符,因此需要键入两次才能表示"真正的"反斜杠。(正如另一个用户 [@xdazz] 所说,这意味着您可以使用单引号字符串'...'
以避免转义)。
你需要
转义'
。
$b=explode("''",$a);
你最好使用单引号来$a
,或者如果字符串包含一些特殊的字符,如'n
,这将被视为换行符代码。
$a='E:'xampp'htdocs'magento162'media'catalog'product'c'o'colorch091001-black-2.jpg';