替换反斜杠

时间:2011-08-23 20:01:56

标签: php string replace

我正在尝试将/\替换为//

$path = 'C:\wamp\www\mysite/bla/bla';
str_replace(array("\/", "\\"), array("\/\/", "\/\/"), $path);

但它不起作用:(

我得到C:\\/wamp\\/www\mysite/bla/bla ...

4 个答案:

答案 0 :(得分:1)

您无需转义/,您需要将str_replace的返回值分配给变量:

$path = str_replace(array("/", "\\"), array("//", "//"), $path);

答案 1 :(得分:1)

没有必要逃避正斜杠,因此它干扰了模式匹配。

此外,str_replace返回替换,它不是byRef函数,因此您需要将返回值存储在变量(docs)中。

看到它发生:http://codepad.org/CNr8P79m

<?php
$path = 'C:\wamp\www\mysite/bla/bla';
$path = str_replace(array("/", "\\"), array("//", "//"), $path);
echo $path;
// output: C://wamp//www//mysite//bla//bla

?>

答案 2 :(得分:1)

如果您正在尝试规范化路径,那么我建议您使用/替换所有目录分隔符,因为这不会影响转义,并且可以在Linux和Windows上运行。

答案 3 :(得分:0)

您不需要仅使用反斜杠转义斜杠。

$path = 'C:\wamp\www\mysite/bla/bla';
$path = str_replace(array('/', '\\'), array('//', '//'), $path);