试图在我的 Windows 操作系统上设置一个 php 网站。我从某人那里得到的 PHP 代码有这样的行
$base_path = realpath('./../').'/';
这以字符串结束c:\abc\xyz/
我需要在 Windows 上进行哪些设置才能强制它附带/
. 我读到了DIRECTORY_SEPERATOR
,但是有很多地方我需要担心,因此如果我能拥有它以便真正的路径提出/
它,将对我有很大的帮助。
蒂莫西答案的变体,它使用DIRECTORY_SEPARATOR
常量而不是条件来简化函数。
function platformSlashes($path) {
return str_replace('/', DIRECTORY_SEPARATOR, $path);
}
$path = "/some/path/here";
echo platformSlashes($path);
反斜杠是 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);
只需对您拥有的字符串进行替换:
$base_path = realpath('./../') . '/';
$base_path_mod = str_replace('\\', '/', $base_path);