我正试图在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()可以在很多情况下帮助您在运行的操作系统上找到正确的路径。