1

我有一个简单的文本字段,客户可以在其中输入他们的 html/php 代码。

在某些服务器上一切正常,但在某些服务器上,只要我输入:

\它保存为\\

所以我想用这样的代码删除它,但它不起作用:

$text = str_replace('\','',$text);

有任何想法吗 ?

4

2 回答 2

1

您可能正在寻找:

$text = str_replace('\\\\','\\',$text);

这将全部替换\\\, 或:

$text = str_replace('\\','',$text);

这取代\了一切。

您需要使用\\(以及\\\\两个斜杠)的原因是转义\, 因为它本身'\'就是转义结束引号,使您的字符串不完整。所以,你需要逃避\,把它变成'\\'.

服务器之间存在这种差异的原因可能是魔术引号,您可以通过确保两个服务器的此配置条目具有相同的值来防止出现上述代码。

而且,毕竟stripslashes(),正如NB指出的那样,您只需调用 即可替换它,您将获得完全相同的结果。

于 2013-06-21T15:25:13.300 回答
0

您始终可以使用 ascii 代码:

 $text="\ it's saved as \\";
  $text = str_replace(chr(92),'',$text);
  echo $text;

返回:

它保存为

于 2013-06-21T15:30:36.443 回答