php过滤script,html等标签

有时在开发前后没有对表单进行过滤处理,导致用户能将JS,CSS等引入方式的提交到数据库,从而导致各种错误,甚至可以导致各种危险因素,解决方法也很简单,也就是过滤掉这些危险标签即可。

代码:

/**
 * 字符串过滤
 * @param 字符串 $str
 */
function strFilter($str)  
{  
    $farr = array(  
        "/\s+/", //过滤多余空白  
         //过滤 <script>等可能引入恶意内容或恶意改变显示布局的代码,如果不需要插入flash等,还可以加入<object>的过滤  
        "/<(\/?)(script|i?frame|style|html|body|title|link|meta|\?|\%)([^>]*?)>/isU", 
        "/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU",//过滤javascript的on事件  
   );  

	   $tarr = array(
	   		"",
	   		"",//如果要直接清除不安全的标签,这里可以留空
	   		"",
	   );
   $str = preg_replace( $farr,$tarr,$str);  
   return $str;  
}