为什么爆炸()不起作用


Why doesn't explode() work?

我正在使用下面的代码部分,无法让 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';