PHP怎么转换Windows的路径斜杠

比如:

\数码相机\15项目\0104_MLYN.MP4
转换为

/数码相机/15项目/0104_MLYN.MP4

用str_replace("\","/","\数码相机\15项目\0104_MLYN.MP4")的话,

会出现这个问题 \15 和 \010 就会没有斜杠了

变成 /数码相机 项目 4_MLYN.MP4

阅读 8.5k
3 个回答

问题原因:\默认被当成转义符处理,需要用\\来表示反斜杠

解决办法:
str_replace("\\","/","\数码相机\15项目\0104_MLYN.MP4")

猜测你要想在Linux中也能够正常识别。

建议:使用PHP中内置常量DIRECTORY_SEPARATOR来表示路径分隔符

代码:

$fileName = '\数码相机\15项目\0104_MLYN.MP4';
$fileName = str_replace('\\', DIRECTORY_SEPARATOR,  $fileName);
echo $fileName; //在linux和windows下都支持
<?php
  
$str = '\数码相机\15项目\0104_MLYN.MP4';
echo str_replace('\\', '/', $str);
// 输出 /数码相机/15项目/0104_MLYN.MP4

MacOS 10.13.3 + PHP 7.1.14 实测可行 。

新手上路,请多包涵

用PHP 预定义常量DIRECTORY_SEPARATOR来代替'','/'这样的路径分隔符

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题