尝试在我的Windows操作系统上设置一个php网站。我从某人那里获得的PHP代码有像
这样的行$base_path = realpath('./../').'/';
最终会出现像c:\abc\xyz/
我需要在Windows上执行哪些设置才能强制它/
。我读过关于DIRECTORY_SEPERATOR
的内容,但是我需要担心各种各样的地方,因此如果我能够拥有它以便真实路径出现/
那将对我有很大的帮助。
答案 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);