PHP:将windows路径转换为unix路径


PHP: Convert windows path to unix path

我正试图在IIS上托管一个在Mac上开发的PHP网站。我有一张图片上传表。图像的路径以Windows风格保存到数据库中(即''images''foo.jpeg)。在我的模板中,我使用css将这些图像用作背景。由于Windows样式的路径,图像不会显示,原因是路径不正确。

问题:如何将Windows路径转换为有效的URL。所以''uloads''images''25.jpeg应该改为/uloads/images/25.jpeg。有没有像realpath这样的函数可以做到这一点,或者我应该使用str_replace或regex来采取肮脏的方式?

使用以下函数将所有windows路径转换为UNIX路径。这是一个WordPress的核心功能和经过良好测试的

function wp_normalize_path( $path ) {
    $path = str_replace( '''', '/', $path );
    $path = preg_replace( '|(?<=.)/+|', '/', $path );
    if ( ':' === substr( $path, 1, 1 ) ) {
        $path = ucfirst( $path );
    }
    return $path;
}

示例:

E:''xampp''htdocs''php''index.php

输出:

E:/xampp/htdocs/php/index.php

尝试使用DIRECTORY_SEPARATOR而不是路径(dir常量)的'/'或''''。这个常量将为您识别操作系统,并在此基础上使用正确的分隔符。

要更改旧路径,您可以尝试使用:

str_replace("/", DIRECTORY_SEPARATOR, 'example/bla/bla.php');

提示:__FILE__、__DIR__或dirname()可以在很多情况下帮助您在运行的操作系统上找到正确的路径。