我正在尝试将/
和\
替换为//
:
$path = 'C:\wamp\www\mysite/bla/bla';
str_replace(array("\/", "\\"), array("\/\/", "\/\/"), $path);
但它不起作用:(
我得到C:\\/wamp\\/www\mysite/bla/bla
...
答案 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);