2015-05-14 53 views
2

我的代码:str_replace()用/在字符串中删除数值?

<?php 

    $string="img\1\EVS\Good Habits.mp41.png"; 
    echo str_replace('\\','/',$string); 

?> 

输出:

img/EVS/Good Habits.mp41.png 

我原来的字符串是:img\1\EVS\Good Habits.mp41.png,但在输出它删除1

请告诉我,如果有人知道这个的原因?

+2

你的双引号内的'\ 1'被解释为chr(1)而不是文字'\ 1'。单引号您的$字符串('$ string ='img \ 1 \ EVS \ Good Habits.mp41.png';')或者转义斜线('$ string =“img \\ 1 \ EVS \ Good Habits.mp41。 PNG“;') –

回答

5

str_replace()这不是故障。如果你这样做:

echo $string; 

,你会看到已经是你失去了数有:

img\EVS\Good Habits.mp41.png 

因为你的反斜杠转义1.因此,解决办法?

您必须在原始字符串中跳过反斜杠或将双引号更改为单引号,以便escape sequence不再从PHP解释。

+0

如果$ string = $ _ POST ['string']怎么办? – Shelim

+0

@Shelim你用'$ string = $ _ POST'['string']'是什么意思?如果字符串来自那里? – Rizier123

+0

是的。字符串值来自表单post.Then如何使这个单引号或任何转义序列只是字符串的\ 1部分。 – Shelim