我正在尝试使用 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
我正在尝试使用 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
使用单引号定义 $a
$a='F:\xampp\htdocs\yii\get_smart\Music\mix\English\1636464449';
问题不str_replace
在于双引号内定义的字符串。反斜杠转义x
后面的和其他字符。
发生这种情况是因为您的字符串在双引号中,因此\x
被解析为字符。
实际上,它试图\xam
作为一个角色来阅读。文档: http: //php.net/manual/en/regexp.reference.escape.php
将您的字符串放在单引号中(或在 之前转义斜杠x
)。
您的问题是第一个字符串有一些转义序列。例如 \xam 在 php 中有一个含义。看起来 \16 也可能意味着什么。您应该在执行 str_replace 之前回显 $a 并查看您得到的结果。