从“/”,“\”转换路径字符串时出现问题

时间:2010-03-27 13:09:04

标签: php string

我有这个代码

      $ current_path = str_replace('\','/',getcwd()); // C:// XAMPP / htdoc

为什么它失败在目录补丁中用'/'替换'\'?为什么是原因以及如何处理这个问题?

编辑此代码用于返回与HTML TAG库一起使用的路径(或类似内容)。



$current_path = getcwd();

function get_basepath() { 
    global $current_path; 

    $current_path  = str_replace('\\', '/', $current_path );                        // C:\xampp\htdocs\php\gettingstarted  

    $cur_root = $_SERVER['HTTP_HOST'];              // localhost
    $cur_docroot = $_SERVER['DOCUMENT_ROOT'];       // C:/xampp/htdocs/
    $cur_filepath = $_SERVER['SCRIPT_FILENAME'];    // C:/xampp/htdocs/php/gettingstarted/index.php 
    $filepath = str_replace($cur_docroot, '', $current_path);

    return "http://$cur_root/" . $filepath . "/";       // http://localhost/php/gettingstarted/index1.php 
} 

4 个答案:

答案 0 :(得分:7)

您需要使用双\,因为\会转义下一个字符。 :)

$current_path = str_replace('\\', '/', getcwd());

答案 1 :(得分:1)

使用\\代替\

 $current_path = str_replace('\\', '/', getcwd()); 

\用于转义具有特殊含义的char。现在\本身就是一个具有特殊含义的字符,因此请使用\之类的其他\\来获取字面值。

答案 2 :(得分:1)

这是PHP string syntax问题,您根本不需要替换。

答案 3 :(得分:1)

$current_path = str_replace('\\', '/', getcwd()); //c://xampp/htdoc