如何在PHP中获取独立于平台的目录分隔符?

2022-08-30 08:46:12

我正在PHP中构建一个路径字符串。我需要它跨平台(即Linux,Windows,OS X)工作。我正在做这个:

$path = $someDirectory.'/'.$someFile;

假设在各种平台上的运行时格式正确。这在Linux和OS X上运行得很好,但在Windows上却不行。问题是角色,我认为这适用于Windows。$someDirectory$someFile/

有没有PHP函数或其他一些技巧可以在Windows运行时切换到它?\

编辑:为了清楚起见,生成的字符串是

c:\Program Files (x86)\Sitefusion\Sitefusion.org\Defaults\pref/user.preferences

在 Windows 上。显然,斜杠的混合使Windows感到困惑。


答案 1

试试这个

DIRECTORY_SEPARATOR

$patch = $somePath. DIRECTORY_SEPARATOR .$someFile

或者您可以定义您的

PHP_OS == "Windows" ||
    PHP_OS == "WINNT" ? define("SEPARATOR", "\\") : define("SEPARATOR", "/"); 

答案 2
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN')           
    define("SEPARATOR", "\\");
else 
    define("SEPARATOR", "/");

http://php.net/manual/en/function.php-uname.php


推荐