我正在尝试做一个简单的事情,将斜杠更改为文件路径中的反斜杠。 Windows 7操作系统
<?php
$fileName = "C:\migration\files\gallery\2c1c7e72-781e-4347-ab39-6e77409b93d5.json";
echo $fileName."<br>";
echo str_replace ("\\","/", $fileName);
$fileContent = file_get_contents($fileName);
echo $fileContent;
exit();
我通过Apache和命令行运行此代码,我看到了奇怪的结果
C:\migrationiles\galleryc1c7e72-781e-4347-ab39-6e77409b93d5.json
第二个斜线消失,字母f&#34; \ f&#34;并且第四个斜线消失,数字2和#34; / 2&#34; 你们能解释一下我怎么可能吗?
答案 0 :(得分:2)
这只是因为转义排序字符而发生,你不能直接在php中打印\
来打印\
你应该把它写成\\
。使用这样来替换字符串中的双反斜杠
$newstr = str_replace('\\\\', '/', $fileName);
或者只是使用正则表达式作为
$newstr = preg_replace('/\\\\/', '/', $fileName);