2012-08-17 51 views
-2

我正在使用下面的代码部分,无法使explode()函数正常工作。为什么不爆炸()工作?

$a="E:\xampp\htdocs\magento162\media\catalog\product\c\o\colorch091001-black-2.jpg"; 
$b=explode("\",$a); 
print_r($b); 

为什么没有上述代码的输出。 IDE提供了一个有错误的提示,但我不知道在哪里。

谢谢。

+2

对于单引号建议,您必须使用另一个\ – CyberDem0n 2012-08-17 10:07:35

回答

8

最有可能的,你必须逃离反斜杠“\”为双反斜线“\\”,无论是在$a("\"...成为explode("\\", $a);

即使StackOverflow上的语法高亮告诉你有一个错误:) (看你红print_r?):)

$a="E:\\xampp\\htdocs\\magento162\\media\\catalog\\product\\c\\o\\colorch091001-black-2.jpg"; 
$b=explode("\\",$a); 

编辑:我会进一步解释:在双引号字符串一样"....",反斜杠用于转义一些特殊字符,如:

\ N =换行符,

\吨=标签上,

\” =双引号,其中的方式生成作为字符串没有你的语法错误‘已完成’和解析器对待,$a);其余的作为字符串的延续...,

因此,在某些情况下,\本身并不是一个“真实”字符,因此需要键入两次以表示“真实”反斜杠。 (这意味着,正如另一位用户[@xdazz]所言,您可以使用单引号字符串'...'来避免转义)。

4

您需要转义\

$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