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