本帖最后由 xuesharp 于 2009-9-22 20:47 编辑
这段函数不错..备用一下...
不过俺们的理念完全不一样,你是在所有提交过滤,俺是随你怎么提交,俺都给你显示出来
出发点完全不一样,简单改几个文件,简单加几行,就达到效果了..嘿嘿....
PHP用:- function checpopkhtml($html) {
- $html = stripslashes($html);
- preg_match_all("/\<([^\<]+)\>/is", $html, $ms);
- $searchs[] = '<';
- $replaces[] = '<';
- $searchs[] = '>';
- $replaces[] = '>';
-
- if($ms[1]) {
- $allowtags = 'img|a|font|div|table|tbody|caption|tr|td|th|br|p|b|strong|i|u|em|span|ol|ul|li|blockquote|object|param|embed';//允许的标签
- $ms[1] = array_unique($ms[1]);
- foreach ($ms[1] as $value) {
- $searchs[] = "<".$value.">";
- $value = shtmlspecialchars($value);
- $value = str_replace(array('\\','/*'), array('.','/.'), $value);
- $value = preg_replace(array("/(javascript|script|eval|behaviour|expression)/i", "/(\s+|"|')on/i"), array('.', ' .'), $value);
- if(!preg_match("/^[\/|\s]?($allowtags)(\s+|$)/is", $value)) {
- $value = '';
- }
- $replaces[] = empty($value)?'':"<".str_replace('"', '"', $value).">";
- }
- }
- $html = str_replace($searchs, $replaces, $html);
- $html = addslashes($html);
- return $html;
- }
复制代码 JS用:- function kill1(str) {
- return str.replace(/<(script|link|style|iframe)(.|\n)*\/\1>\s*/ig,"");
- }
- function kill2(str) {
- return str.replace(/<[a-z][^>]*\s*on[a-z]+\s*=[^>]+/ig,function($0,$1){
- return $0.replace(/\s*on[a-z]+\s*=\s*("[^"]+"|'[^']+'|[^\s]+)\s*/ig,"");
- });
- }
复制代码 |