我試圖用//
取代/
和\
:更換反斜線
$path = 'C:\wamp\www\mysite/bla/bla';
str_replace(array("\/", "\\"), array("\/\/", "\/\/"), $path);
,但它不工作:(
我得到C:\\/wamp\\/www\mysite/bla/bla
...
我試圖用//
取代/
和\
:更換反斜線
$path = 'C:\wamp\www\mysite/bla/bla';
str_replace(array("\/", "\\"), array("\/\/", "\/\/"), $path);
,但它不工作:(
我得到C:\\/wamp\\/www\mysite/bla/bla
...
沒有必要擺脫正斜槓,所以它是干擾模式匹配。
此外,str_replace
退貨更換,它不是按地址功能,所以你需要存儲在變量(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
?>
你不需要轉義/
,您需要將返回值str_replace
分配給一個變量:
$path = str_replace(array("/", "\\"), array("//", "//"), $path);
如果你想正常化的路徑,然後我可以/
建議更換所有目錄分隔符,因爲這不妨礙逃逸和工作在Linux和Windows。
您不需要僅反斜槓反斜槓。
$path = 'C:\wamp\www\mysite/bla/bla';
$path = str_replace(array('/', '\\'), array('//', '//'), $path);
供參考:單引號或雙引號對這個腳本的結果完全沒有影響。 –
@Chris:是的,你說得對。我糾正了我的答案。 –
所有的答案都是一樣的,但如果它們相同,則不需要在'replacement'參數中有一個數組。即,這將工作:'$ path = str_replace(array('/','\\'),'//',$ path);' – NullUserException