无法从下面的代码中删除反斜杠?
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
参见第二条准则
下面是我的代码,问题是当我输入任何带有撇号 (') 的用户名时,返回搜索结果时会显示附加字符“\ 反斜杠”。
下面是我的代码,我发现在 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 参见第二条准则