1

就像主题说我有一些$_POST数据需要删除所有斜线。但是,它会留下一个,当表单上有错误时,它会将发布数据打印回用户,因此他们不必重新输入。当他们再次提交页面时,每次提交错误时,斜线的数量都会大大增加。我拥有的代码很简单,使用stripslashes($_POST['first'])然后发回错误。我也试图str_replace摆脱最后一个\ ,但这不起作用。有任何想法吗?

代码编辑--------

   $first =  stripslashes($_POST[f_name]); 
   $first = str_replace('\\' , '', $_POST[f_name]);
4

5 回答 5

4

stripslashes()只去除第一个连续的反斜杠(当它们是连续的时),因为反斜杠用于转义反斜杠。

你应该使用str_replace("\\", "", $_POST['first']);

如果您要删除的是前斜线,请更新,请使用str_replace("/", "", $_POST['first']);

于 2012-01-13T00:05:16.110 回答
2

你启用了magic_quotes 吗?stripslashes 只会删除用于转义字符的 \。因此,如果您想在文本中使用 \,则需要使用两个来转义它:\。在这种情况下,两个 \ 将转换为一个带有斜杠的 \。在进行任何处理之前执行 print_r($_POST) 以查看 POST 中的实际内容。

于 2012-01-13T01:22:43.643 回答
1

禁用魔术引号应该可以解决您的问题。

于 2012-01-13T01:32:44.367 回答
1

我有一个类似的问题并使用了一个非常粗略的解决方案....我刚刚连续两次实现了 stripslashes 函数,或者在你的情况下:

$first_temp =  stripslashes($_POST[f_name]);
$first = stripslashes($first_temp);  

粗鲁,但它对我有用!

于 2013-09-29T03:27:41.520 回答
0

我认为您的帖子数组包含从数据库中获取的内容,例如“isn\'t orWould\'t”以更新到数据库。然后,当您将数据读取到字段使用时,您会做一件事

条纹(数据['description_to_textarea'])

问题修复。

于 2016-01-22T04:37:07.010 回答