无法从下面的代码中删除反斜杠?

Not able to remove backslash from below code?

下面是我的代码,问题是当我输入任何带有撇号 (') 的用户名时,返回搜索结果时会显示附加字符“\ 反斜杠”。

下面是我的代码,我发现在 checkusername 函数中使用了函数 addslashes,因此添加了反斜杠。

if ( 0 < count( $my_field_place ))
    {
        for ( $i = 0; $i < count( $my_field_place ); $i++ )
        {
            if ( true === isset( $Fields[$i] ))
            {
                print "gMapping[$i] = new MappingItem( '" .
                        addslashes( $Fields[$i] ) .
                        "', '" .
                        checkusername( $my_field_place[$i] ) .
                        "' );";
            }
        }
    }


function checkusername($inStr)
{
  $orig = array();
  $new  = array();

  $orig[00] = "/\n/`"          ;  $new[00] = "\?n";
  $orig[01] = "/[^\x-*()]/";  $new[01] = "";

  $var1 = preg_replace($orig, $new, $inStr);
  $var2 = addslashes($var1 );     // i am not sure why addslashes is used but i am asked not to remove because of security reasion?                        

  return $var2;
}

注意:我 google 发现它用于安全原因 因为在我的例子中,我们只显示搜索结果。所以我不确定为什么在这里使用这个功能。 我的解决方法是在返回之前添加 stripslashes() 函数,这将删除 addslashes() 函数添加的反斜杠。 请在下面找到代码片段和代码更改注释:

function checkusername($inStr)
{
  $orig = array();
  $new  = array();

  $orig[00] = "/\n/`"          ;  $new[00] = "\?n";
  $orig[01] = "/[^\x-*()]/";  $new[01] = "";

  $var1 = preg_replace($orig, $new, $inStr);
  $var2 = addslashes($var1);                           

  return stripslashes($var2); // i am not sure stripslashes is correct fix or not?
}

请帮忙添加 stripslashes 是否可以,或者有其他方法可以处理它吗?

您可以限制用户使用那些特殊字符 尽管在 gmail、yahoo、fb 等中他们永远不会 allow this character.since t 允许以某种可读的方式表示多个单词 下面是一些文档 https://support.google.com/a/answer/33386?hl=en 参见第二条准则