1

我正在尝试使用 str_replace 来更正文件路径,如下所示:

$a="F:\xampp\htdocs\yii\get_smart\Music\mix\English\1636464449";  
$a=str_replace('\\','/', $a);  
echo $a;

返回:

F:
mpp/htdocs/yii/get_smart/Music/mix/Englishs6464449

有人可以告诉我我做错了什么吗?

我的 PHP 版本是 5.3.8

4

3 回答 3

11

使用单引号定义 $a

$a='F:\xampp\htdocs\yii\get_smart\Music\mix\English\1636464449';  

问题不str_replace在于双引号内定义的字符串。反斜杠转义x后面的和其他字符。

于 2012-09-18T20:26:53.453 回答
3

发生这种情况是因为您的字符串在双引号中,因此\x被解析为字符。

实际上,它试图\xam作为一个角色来阅读。文档: http: //php.net/manual/en/regexp.reference.escape.php

将您的字符串放在单引号中(或在 之前转义斜杠x)。

于 2012-09-18T20:27:10.523 回答
0

您的问题是第一个字符串有一些转义序列。例如 \xam 在 php 中有一个含义。看起来 \16 也可能意味着什么。您应该在执行 str_replace 之前回显 $a 并查看您得到的结果。

于 2012-09-18T20:28:31.487 回答