函数代码:
// 定义不同处理模式
// $mode = 0: 仅转义HTML标签
// $mode = 1: 转义HTML标签并合并连续空格
// $mode = 2: 转义HTML标签并移除所有空格
// $mode = -1: 仅转义潜在危险的HTML标签
function sanitizeHtmlInput($input, $mode = 0) {
$input = stripslashes($input);
switch ($mode) {
case 0:
return htmlspecialchars($input, ENT_QUOTES, 'UTF-8');
case 1:
$input = htmlspecialchars($input, ENT_QUOTES, 'UTF-8');
return preg_replace('/\s+/', ' ', $input);
case 2:
$input = htmlspecialchars($input, ENT_QUOTES, 'UTF-8');
return str_replace(' ', '', $input);
case -1:
$input = preg_replace('/.*?<\/script>/i', '', $input);
$input = preg_replace('/<[^>]+>/i', '', $input);
return $input;
default:
return $input;
}
}