-3

我正在使用下面的代码部分,无法使explode() 函数工作。

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

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

谢谢你。

4

2 回答 2

8

最有可能的是,您必须将反斜杠“\”转义为双反斜杠“\\”,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] 所说,您可以使用单引号字符串'...'来避免转义)。

于 2012-08-17T10:07:28.060 回答
4

你需要逃避\.

$b=explode("\\",$a);

你最好使用单引号$a,或者如果字符串包含一些特殊的字符,比如\n将被视为换行代码。

$a='E:\xampp\htdocs\magento162\media\catalog\product\c\o\colorch091001-black-2.jpg';
于 2012-08-17T10:07:50.837 回答