2012-01-12 99 views
1

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

代码EDIT --------

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

我们可以看看你的代码吗? – 2012-01-13 00:01:59

+0

我已经在 – Pengume 2012-01-13 00:24:06

回答

4

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

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

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

+0

以上添加了我的代码我已经使用了/尝试过,并没有摆脱最后的/ – Pengume 2012-01-13 00:23:36

+2

的等待,它不应该摆脱正斜线......只是反斜杠。 – 2012-01-13 00:25:20

2

您是否启用了magic_quotes的? stripslashes只会移除用来逃离角色的\。所以,如果你想在你的文本中使用\,你需要通过使用两个来逃避它:\。在这种情况下,两个\将被转换为一个\带分隔线。在进行任何处理之前先执行print_r($ _ POST),以查看POST中的实际内容。

1

我有一个类似的问题,用了一个很粗的解决方案....我只是实现的stripslashes连续两次的功能,或在您的情况:

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

原油,但它为我工作!

0

我认为你的帖子数组包括从数据库中取出的东西,比如“isn \'t或wouldn't”来更新到数据库。然后,你当你读数据的字段使用

stripeslashes(数据[ 'description_to_textarea'])

问题的修复做的一件事。