php 过滤非法与特殊字符串的方法
在留言板中,有时需要对用户输入内容进行过滤,将一些非法与特殊字符串进行过滤处理,将其替换为*。下面本篇文章就来给大家分享一下过滤功能的实现代码,希望对大家有所帮助!
需求:用户在评论页面输入非法字符以后,需要将非法字符替换为*
简单实现方法:
1、index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>过滤留言板中的非法字符</title> <style type="text/css"> <!-- body { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; } --> </style></head> <body> <table width="1002" height="585" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="379" height="226"> </td> <td width="445"> </td> <td width="178"> </td> </tr> <form id="form1" name="form1" method="post" action="index_ok.php"> <tr> <td height="260"> </td> <td align="center" valign="top"><table width="430" border="1" cellpadding="1" cellspacing="1" bordercolor="#FFFFFF" bgcolor="#99CC67"> <tr> <td width="81" height="30" align="right" bgcolor="#FFFFFF">发布主题:</td> <td width="307" align="left" bgcolor="#FFFFFF"><input name="title" type="text" id="title" size="30" /></td> </tr> <tr> <td align="right" bgcolor="#FFFFFF">发布内容:</td> <td align="left" bgcolor="#FFFFFF"><textarea name="content" cols="43" rows="13" id="content"></textarea></td> </tr> </table></td> <td> </td> </tr> <tr> <td height="99"> </td> <td align="center" valign="top"><table width="315" height="37" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="169" align="center"><input type="image" name="imageField" src="images/bg1.JPG" /></td> <td width="146" align="center"><input type="image" name="imageField2" src="images/bg3.JPG" onclick="form.reset();return false;" /></td> </tr> </table></td> <td> </td> </tr> </form> </table> </body> </html>
2、index_ok.php
<?php $title=$_POST[title]; $content=$_POST[content]; $str="****"; $titles = preg_replace("/(黑客)|(抓包)|(监听)/",$str,$title); $contents = preg_replace("/(黑客)|(抓包)|(监听)/",$str,$content); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>过滤留言板中的非法字符</title> <style type="text/css"> <!-- body { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; } .STYLE1 { font-size: 12px; color: #855201; } --> </style></head> <body> <table width="1002" height="585" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="400" height="226"> </td> <td width="406"> </td> <td width="196"> </td> </tr> <form id="form1" name="form1" method="post" action="index_ok.php"> <tr> <td height="260"> </td> <td align="left" valign="top"><p class="STYLE1">发布主题:<?php echo $titles;?></p> <p class="STYLE1">发布内容:<?php echo $contents;?></p></td> <td> </td> </tr> <tr> <td> </td> <td align="center" valign="top"> </td> <td> </td> </tr> </form> </table> </body> </html>
运行结果
复杂实现方法:可过滤JS 、PHP标签
//简单过滤JS 、PHP标签 function cleanJs($html){ $html=trim($html); $html=str_replace(array('<?','?>'),array('<?','?>'),$html); $pattern=array( "'<script[^>]*?>.*?</script>'si", "'<style[^>]*?>.*?</style>'si", "'<frame[^>]*?>'si", "'<iframe[^>]*?>.*?</iframe>'si", "'<link[^>]*?>'si" ); $replace=array("","","","",""); return preg_replace($pattern,$replace,$html); } /* Remove JS/CSS/IFRAME/FRAME 过滤JS/CSS/IFRAME/FRAME/XSS等恶意攻击代码(可安全使用) * Return string */ function cleanJsCss($html){ $html=trim($html); $html=preg_replace('/\0+/', '', $html); $html=preg_replace('/(\\\\0)+/', '', $html); $html=preg_replace('#(&\#*\w+)[\x00-\x20]+;#u',"\\1;",$html); $html=preg_replace('#(&\#x*)([0-9A-F]+);*#iu',"\\1\\2;",$html); $html=preg_replace("/%u0([a-z0-9]{3})/i", "&#x\\1;", $html); $html=preg_replace("/%([a-z0-9]{2})/i", "&#x\\1;", $html); $html=str_replace(array('<?','?>'),array('<?','?>'),$html); $html=preg_replace('#\t+#',' ',$html); $scripts=array('javascript','vbscript','script','applet','alert','document','write','cookie','window'); foreach($scripts as $script){ $temp_str=""; for($i=0;$i<strlen($script);$i++){ $temp_str.=substr($script,$i,1)."\s*"; } $temp_str=substr($temp_str,0,-3); $html=preg_replace('#'.$temp_str.'#s',$script,$html); $html=preg_replace('#'.ucfirst($temp_str).'#s',ucfirst($script),$html); } $html=preg_replace("#<a.+?href=.*?(alert\(|alert&\#40;|javascript\:|window\.|document\.|\.cookie|<script|<xss).*?\>.*?</a>#si", "", $html); $html=preg_replace("#<img.+?src=.*?(alert\(|alert&\#40;|javascript\:|window\.|document\.|\.cookie|<script|<xss).*?\>#si", "", $html); $html=preg_replace("#<(script|xss).*?\>#si", "<\\1>", $html); $html=preg_replace('#(<[^>]*?)(onblur|onchange|onclick|onfocus|onload|onmouseover|onmouseup|onmousedown|onselect|onsubmit|onunload|onkeypress|onkeydown|onkeyup|onresize)[^>]*>#is',"\\1>",$html); //$html=preg_replace('#<(/*\s*)(alert|applet|basefont|base|behavior|bgsound|blink|body|embed|expression|form|frameset|frame|head|html|ilayer|iframe|input|layer|link|meta|object|plaintext|style|script|textarea|title|xml|xss)([^>]*)>#is', "<\\1\\2\\3>", $html); $html=preg_replace('#<(/*\s*)(alert|applet|basefont|base|behavior|bgsound|blink|body|expression|form|frameset|frame|head|html|ilayer|iframe|input|layer|link|meta|object|plaintext|style|script|textarea|title|xml|xss)([^>]*)>#is', "<\\1\\2\\3>", $html); $html=preg_replace('#(alert|cmd|passthru|eval|exec|system|fopen|fsockopen|file|file_get_contents|readfile|unlink)(\s*)\((.*?)\)#si', "\\1\\2(\\3)", $html); $bad=array( 'document.cookie' => '', 'document.write' => '', 'window.location' => '', "javascript\s*:" => '', "Redirect\s+302" => '', '<!--' => '<!--', '-->' => '-->' ); foreach ($bad as $key=>$val){ $html=preg_replace("#".$key."#i",$val,$html); } return $html; } //过滤html标签以及敏感字符 function cleanHtml($html){ return cleanYellow(htmlspecialchars($html)); } //过滤部分HTML标签 function cleanFilter($html){ $html=trim($html); $html=preg_replace("/<p[^>]*?>/is","<p>",$html); $html=preg_replace("/<div[^>]*?>/is","<div>",$html); $html=preg_replace("/<ul[^>]*?>/is","<ul>",$html); $html=preg_replace("/<li[^>]*?>/is","<li>",$html); $html=preg_replace("/<span[^>]*?/is","<span>",$html); $html=preg_replace("/<a[^>]*?>(.*)?<\/a>/is","\${1}",$html); $html=preg_replace("/<table[^>]*?>/is","<table>",$html); $html=preg_replace("/<tr[^>]*?>/is","<tr>",$html); $html=preg_replace("/<td[^>]*?>/is","<td>",$html); $html=preg_replace("/<ol[^>]*?>/is","<ol>",$html); $html=preg_replace("/<form[^>]*?>/is","",$html); $html=preg_replace("/<input[^>]*?>/is","",$html); return $html; } //过滤非法的敏感字符串 function cleanYellow($txt){ $txt=str_replace( array("黄色","性爱","做爱","我日","我草","我靠","尻","共产党","胡锦涛","毛泽东", "政府","中央","研究生考试","性生活","色情","情色","我考","麻痹","妈的","阴道", "淫","奸","阴部","爱液","阴液","臀","色诱","煞笔","傻比","阴茎","法轮功","性交","阴毛","江泽民"), array("*1*","*2*","*3*","*4*","*5*","*6*","*7*","*8*","*9*","*10*", "*11*","*12*","*13*","*14*","*15*","*16*","*17*","*18*","*19*","*20*", "*21*","*22*","*23*","*24*","*25*","*26*","*27*","*28*","*29*","*30*","*31*","*32*","*33*","*34*"), $txt); return $txt; } //过滤敏感字符串以及恶意代码 function cleanAll($html){ return cleanYellow(cleanJsCss($html)); } //全半角字符替换 function setFilter($html){ $arr=array('0' => '0', '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', 'A' => 'A', 'B' => 'B', 'C' => 'C', 'D' => 'D', 'E' => 'E', 'F' => 'F', 'G' => 'G', 'H' => 'H', 'I' => 'I', 'J' => 'J', 'K' => 'K', 'L' => 'L', 'M' => 'M', 'N' => 'N', 'O' => 'O', 'P' => 'P', 'Q' => 'Q', 'R' => 'R', 'S' => 'S', 'T' => 'T', 'U' => 'U', 'V' => 'V', 'W' => 'W', 'X' => 'X', 'Y' => 'Y', 'Z' => 'Z', 'a' => 'a', 'b' => 'b', 'c' => 'c', 'd' => 'd', 'e' => 'e', 'f' => 'f', 'g' => 'g', 'h' => 'h', 'i' => 'i', 'j' => 'j', 'k' => 'k', 'l' => 'l', 'm' => 'm', 'n' => 'n', 'o' => 'o', 'p' => 'p', 'q' => 'q', 'r' => 'r', 's' => 's', 't' => 't', 'u' => 'u', 'v' => 'v', 'w' => 'w', 'x' => 'x', 'y' => 'y', 'z' => 'z', '(' => '(', ')' => ')', '〔' => '[', '〕' => ']', '【' => '[', '】' => ']', '〖' => '[', '〗' => ']', '“' => '[', '”' => ']', '‘' => '[', '’' => ']', '{' => '{', '}' => '}', '《' => '<', '》' => '>', '%' => '%', '+' => '+', '—' => '-', '-' => '-', '~' => '-', ':' => ':', '。' => '.', '、' => ',', ',' => '.', '、' => '.', ';' => ',', '?' => '?', '!' => '!', '…' => '-', '‖' => '|', '”' => '"', '’' => '`', '‘' => '`', '|' => '|', '〃' => '"', ' ' => ' '); return strtr($html,$arr); }
推荐学习:《PHP视频教程》

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

在php中,可以使用ord()函数来将字符转成ascii码,该函数可以返回单个字符或字符串中第一个字符的ASCII值,返回的ASCII值会以整数形式显示;转换语法“ord(string)”,参数“string”不可省略,是要从中获得ASCII值的字符串(或单个字符)。

php字符串替换某个字符为空的两种方法:1、使用str_replace()函数将指定字符替换为空字符,只需要将第一个参数设置为指定字符,第二个参数设置为空字符,语法“str_replace("指定字符","", $str)”;2、用preg_replace()函数配合正则表达式来匹配指定字符并将其替换空字符,语法“preg_replace('/指定字符/',"",$str)”。

两种去除方法:1、利用preg_replace()执行正则表达式搜索所有大写字母并将其替换为空字符即可,语法“preg_replace('/[A-Z]/','',$str)”。2、利用preg_filter()执行正则表达式搜索所有大写字母并将其替换为空字符即可,语法“preg_filter('/[A-Z]/','',$str)”。

PHP是一种强制类型编程语言,经常被用来开发Web应用程序。在Web开发过程中,您可能需要对字符串执行各种操作,例如从字符串中删除特定字符,保留字符串中的数字或字母等。在本文中,我们将重点介绍PHP中如何删除字符串左侧或右侧的特定字符。

两种方法:1、用preg_match_all()配合正则过滤字符串,语法“preg_match_all("/[\x{4e00}-\x{9fff}] /u","$str",$arr);”;2、用preg_replace()配合正则搜索字符串中的非中文字母,并将其替换成空字符,语法“preg_replace("/[^\x{4E00}-\x{9FFF}] /u",'',$str)”。

PHP是一种非常流行的编程语言,是建立动态网站的首选工具之一。在PHP开发中,我们经常需要操作字符串,其中一个常见的需求是去除字符串中的双引号。在这篇文章中,我们将介绍一些方法来去除PHP字符串中的双引号。

php可以给字符串添加字符。两种实现方法:1、使用字符串连接符“.”将指定字符拼接到字符串的开头或末尾即可,语法“指定字符 . 字符串”或“字符串 . 指定字符 ”;2、使用substr_replace()函数在字符串的指定位置插入指定字符即可,语法“substr_replace(字符串,指定字符,指定位置,0)”,指定位置的值可以是0、负值和正值。

PHP是一种常用的服务器端脚本语言,在Web开发中广泛应用。PHP对字符串的处理相当灵活,使得字符串转换成日期时间格式变得简单。本文将为大家介绍如何使用PHP将字符串转换成日期时间格式。
