为什么不爆炸()工作?
问题描述:
我正在使用下面的代码部分,无法使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);
即使*上的语法高亮告诉你有一个错误:) (看你红print_r
?):)
$a="E:\\xampp\\htdocs\\magento162\\media\\catalog\\product\\c\\o\\colorch091001-black-2.jpg";
$b=explode("\\",$a);
编辑:我会进一步解释:在双引号字符串一样"...."
,反斜杠用于转义一些特殊字符,如:
\ N =换行符,
\吨=标签上,
\” =双引号,其中的方式生成作为字符串没有你的语法错误‘已完成’和解析器对待,$a);
其余的作为字符串的延续...,
因此,在某些情况下,\
本身并不是一个“真实”字符,因此需要键入两次以表示“真实”反斜杠。 (这意味着,正如另一位用户[@xdazz]所言,您可以使用单引号字符串'...'
来避免转义)。
答
您需要转义\
。
$b=explode("\\",$a);
你最好使用单引号为$a
,或者如果字符串包含类似\n
这将被视为一个新行代码中的一些特殊字符。
$a='E:\xampp\htdocs\magento162\media\catalog\product\c\o\colorch091001-black-2.jpg';
+2
+1进行转义。 – Cranio 2012-08-17 10:14:29
对于单引号建议,您必须使用另一个\ – CyberDem0n 2012-08-17 10:07:35