PHP strip_标记不允许小于'<';串
请让我知道如何允许少于字符的“正确编码PHP strip_标记不允许小于'<';串,php,strip-tags,Php,Strip Tags,请让我知道如何允许少于字符的“正确编码 $string ="abc<123"; 尽管如果您没有对HTML输出进行清理,您也不应该使用strip\u tags()。strip\u tags是清理数据的一种非常基本且不是很好的方法(即“将任意值冲压到形状中”)。同样,正如您所看到的,它不是一个很好的函数。只有在有很好的理由的情况下才应该清理数据,通常没有很好的理由。问问你自己,你从任意剥离部分价值中得到了什么 您可能希望验证或转义以避免语法问题和/或注入攻击。卫生处理很少是正确的做法
$string ="abc<123";
尽管如果您没有对HTML输出进行清理,您也不应该使用
strip\u tags()
。strip\u tags
是清理数据的一种非常基本且不是很好的方法(即“将任意值冲压到形状中”)。同样,正如您所看到的,它不是一个很好的函数。只有在有很好的理由的情况下才应该清理数据,通常没有很好的理由。问问你自己,你从任意剥离部分价值中得到了什么
您可能希望验证或转义以避免语法问题和/或注入攻击。卫生处理很少是正确的做法。阅读以了解整个主题的更多背景信息。您可以在字符串中搜索一个字符,将其取出,剥去字符串中的标签()并将其放回:
$string = "abc<123";
$character = "<";
$pos = strpos($string,$character);
$tag = ">";
$check = strpos($string,$tag);
if ($pos !== false && $check == false) {
$string_array = explode("<",$string);
$string = $string_array[0];
$string .= $string_array[1];
$string = strip_tags($string);
$length = strlen($string);
$substr = substr($string, 0, $pos);
$substr .= "<";
$substr .= substr($string, $pos, $length);
$string = $substr;
} else {
$string = strip_tags($string);
}
$string=“abc问题:
使用trip_标记的目的是防止来自HTML或PHP注入的攻击。然而,trip_标记不仅删除HTML和PHP标记,还删除了带有<运算符的数学表达式的一部分。因此,我们看到的是“abcWhy you you's usingstrip_tags
?特别是如果它没有产生期望的结果。答案是不要使用TrasyTAG()。如果你想做的是阻止用户提交危险数据,你应该考虑让他们提交他们想要的任何东西,而当把它附加到生成的HTML上时,就可以在字符串上使用。这样,您可以保留用户发送的所有内容,而不会有任何危险。<是一个标记。它正在被剥离。这就是strip_tags功能的目的。如果您不想删除标记,我建议不要使用strip_tags函数。@Mr_Chimp,从技术上讲,我有一个HTML表单,它从用户那里获取用户名和密码,然后函数StringFromUser()被称为StringFromUser($string){If(is_string($string)){返回strip_标记($string)}为什么你要在这些标签上使用strip_tags()
?@tarun-那么,网站用户需要使用HTML代码键入用户名和密码?那是什么,一个有趣的验证码?我的问题是,我们是否可以允许‘不,你不能做正确的事情而做错误的事情’。
$string = "abc<123";
$character = "<";
$pos = strpos($string,$character);
$tag = ">";
$check = strpos($string,$tag);
if ($pos !== false && $check == false) {
$string_array = explode("<",$string);
$string = $string_array[0];
$string .= $string_array[1];
$string = strip_tags($string);
$length = strlen($string);
$substr = substr($string, 0, $pos);
$substr .= "<";
$substr .= substr($string, $pos, $length);
$string = $substr;
} else {
$string = strip_tags($string);
}
$string = "abc<123";
echo StringFromUser($string);
function StringFromUser($string)
{
if (is_string($string)) {
//change "abc<123" to "abc< myUniqueID123", so math expressions are not stripped.
//use myQuniqueID to identity what we have changed later.
$string = preg_replace("/(<)(\d)/", "$1 myUniqueID$2", $string);
$string = strip_tags($string);
//change "abc< myUniqueID123" back to "abc<123"
$string = preg_replace("/(<) myUniqueID(\d)/", "$1$2", $string);
return $string;
}
}