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