Windows路径上的PHP会出现反斜杠

时间:2013-02-07 04:26:37

标签: php windows path

尝试在我的Windows操作系统上设置一个php网站。我从某人那里获得的PHP代码有像

这样的行
$base_path = realpath('./../').'/'; 

最终会出现像c:\abc\xyz/

这样的字符串

我需要在Windows上执行哪些设置才能强制它/。我读过关于DIRECTORY_SEPERATOR的内容,但是我需要担心各种各样的地方,因此如果我能够拥有它以便真实路径出现/那将对我有很大的帮助。

3 个答案:

答案 0 :(得分:5)

Timothy的答案的变体,它使用DIRECTORY_SEPARATOR常量而不是条件来简化函数。

function platformSlashes($path) {
    return str_replace('/', DIRECTORY_SEPARATOR, $path);
}

$path = "/some/path/here";
echo platformSlashes($path);

答案 1 :(得分:4)

反斜杠是Windows平台上的目录分隔符。但是根据我的理解和经验,在解析路径时,PHP脚本仍然可以使用正斜杠。因此,您可以使用正斜杠编写所有代码,而不用担心它。如果你正在显示用户的路径,那么前进/后退非常重要,例如在设置/安装程序脚本中(站点的大多数用户不需要了解目录结构,也不关心服务运行的平台) )。您可以创建一个显示函数来识别平台并根据需要替换斜杠,然后在显示它们之前传递路径。以下是我建议的一个例子,虽然我还没有测试过。

<?php
function platformSlashes($path) {
    if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
        $path = str_replace('/', '\\', $path);
    }
    return $path;
}

$path = "/some/path/here";
echo platformSlashes($path);

答案 2 :(得分:1)

只需对您拥有的字符串进行替换:

$base_path = realpath('./../') . '/';
$base_path_mod = str_replace('\\', '/', $base_path);