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

发布于 2024-11-19 15:19:40 字数 533 浏览 2 评论 0原文

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

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

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

是否有 PHP 函数或其他技巧可以在 Windows 上运行时将其切换为 \

编辑:需要明确的是,生成的字符串位于

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

Windows 上。显然,斜杠的混合会让 Windows 感到困惑。

I'm building a path string in PHP. I need it to work across platforms (i.e., Linux, Windows, OS X).
I'm doing this:

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

Assume $someDirectory and $someFile are formatted correctly at run-time on the various platforms. This works beautifully on Linux and OS X, but not on Windows. The issue is the / character, which I thought would work for Windows.

Is there a PHP function or some other trick to switch this to \ at runtime on Windows?

EDIT: Just to be clear, the resultant string is

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

on Windows. Obviously the mix of slashes confuses Windows.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夏末的微笑 2024-11-26 15:19:40

尝试这个

DIRECTORY_SEPARATOR

$patch = $somePath. DIRECTORY_SEPARATOR .$someFile

或者您可以定义您的

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

Try this one

DIRECTORY_SEPARATOR

$patch = $somePath. DIRECTORY_SEPARATOR .$someFile

or you can define yours

PHP_OS == "Windows" ||
    PHP_OS == "WINNT" ? define("SEPARATOR", "\\") : define("SEPARATOR", "/"); 
马蹄踏│碎落叶 2024-11-26 15:19:40
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN')           
    define("SEPARATOR", "\\");
else 
    define("SEPARATOR", "/");

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

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文