2013-02-16 47 views
-2

这个问题以前有人问,结果被关闭,没有任何结果如何删除重复的文件路径斜杠

第二次运气好,我刚才的问题得到了封闭:https://stackoverflow.com/questions/14903375/php-clean-up-path-with-duplicate-slashes看起来像我遗失的问号,使之明显我的问题是什么。

问题:

  1. 我怎样可以删除重复的字符串中的斜线?用例子看下面的代码。
  2. windows(wamp)如何支持使用正斜杠的文件路径?写c:/ wamp感觉不对,但似乎很好,因为我不确定。

CODE:

<?php 
function clean($full_path){ 
    return str_replace(array("\\", "//", "\/", "/\"), DIRECTORY_SEPARATOR, $full_path); 
} 

$paths = array(
'var/www/tpl//main.tpl', 
'C:\wamp\www\/tpl\\main.tpl', 
'C:\wamp\www/\tpl\main.tpl'); 

foreach($paths as $path){ 
    echo "Before: $url\nAfter: ".clean($path)."\n---------------------\n"; 
} 
?> 
+1

10 $有人会关闭这个以及 – lelloman 2013-02-16 09:04:56

+0

怎么回事?我真的没有得到什么人的问题是在这里,人们宁愿挑剔你的问题,然后实际上帮助你与代码 – 2013-02-16 09:06:06

+0

你正在''''在最后''/ \“'一 – 2013-02-16 09:09:10

回答

2

我想你需要逃跑反斜杠。试试这个:

<?php 

function clean($full_path){ 
    return str_replace(array(
     "\\\\", 
     "\\/", 
     "//", 
     "\\/", 
     "/\\"), DIRECTORY_SEPARATOR, $full_path); 
} 

$paths = array(
'var/www/tpl//main.tpl', 
'C:\wamp\www\/tpl\\main.tpl', 
'C:\wamp\www/\tpl\main.tpl'); 

foreach($paths as $path){ 
    echo "Before: $path <br/> After: ".clean($path)."<br/>---------------------<br/>"; 
} 

?> 
1

以及如何使用它正斜杠窗口(WAMP)支持文件路径?写c:/ wamp感觉不对,但似乎很好,因为我不确定。

PHP支持这一点。实际上,多年以来,您可以使用它,而不是DIRECTORY_SEPARATOR,因为它有助于轻松编写跨平台代码。

请小心howeever这是WAMP网络共享:

\\host\share\path\to\file.ext 

所以“只”删除双斜线其实是一个坏主意。你可能想要的是realpath

1

您可以使用preg_match();str_replace();

相关问题