php 字符过滤类,用于过滤各类用户输入的数据

详细代码如下:


代码如下:

<?php
abstract class Filter { //filter parent class
private $blackstr = array();
private $whitestr = array();
function filtit($str) {
//do something
}
}
class LoginFilter extends Filter { //for user login filte username(过滤注册的用户名)
function filtit($str) {
$this -> blackstr = array(
´/[\x7f-\xff]/´, //filter chinese include chinese symbol
´/\W/´ //filter all english symbol
);
return preg_replace($this->blackstr, ´´, $str);
}
}
class EditorFilter extends Filter { //for article editor filter(过滤在线编辑器内容)
function filtit($str) {
$this -> blackstr = array(
´/\&/´,
´/\´/´,
´/\"/´,
´/\</´,
´/\>/´,
´/\\\\/´,
´/\//´,
´/-/´,
´/\*/´,
´/ /´
);
$this -> whitestr = array(
´&´,
´'´,
´"´,
´<´,
´>´,
´\´,
´/´,
´-´,
´*´,
´ ´
);
return preg_replace($this->blackstr, $this -> whitestr, $str);
}
}
class SQLFilter extends Filter { //for filte sql query string(过滤如查询或其它sql语句)
function filtit($str) {
$this -> blackstr = array(
´/\´/´,
´/-/´
);
return preg_replace($this->blackstr, ´´, $str);
}
}
class FileNameFilter extends Filter { //for filte a file name(过滤文件名如下载文件名)
function filtit($str) {
$this -> blackstr = array(
´/[^A-za-z0-9_\.]|\\\\|\^|\[|\]/´
);
return preg_replace($this->blackstr, ´´, $str);
}
}
?>

使用方法如:


代码如下:

$filter = new FileNameFilter(); //定义实例
$downFile = $filter->filtit($_GET[´fn´]); //调用过滤方法

(0)

相关推荐

  • php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总

    从旧版升级到php5.4,恐怕最麻烦的就是htmlspecialchars这个问题了!当然,htmlentities也会受影响,不过,对于中文站来说一般用htmlspecialchars比较常见,htmlentities非常少用到. 可能老外认为网页普遍应该是utf-8编码的,于是苦了那些用GB2312,GBK编码的中文站......! 具体表现: 复制代码 代码如下: $str = "9enjoy.com的php版本是5.2.10"; echo htmlspecialchars($s

  • PHP开发不能违背的安全规则 过滤用户输入

    作为最基本的防范你需要注意你的外部提交,做好第一面安全机制处理防火墙. 规则 1:绝不要信任外部数据或输入 关于Web应用程序安全性,必须认识到的第一件事是不应该信任外部数据.外部数据(outside data) 包括不是由程序员在PHP代码中直接输入的任何数据.在采取措施确保安全之前,来自任何其他来源(比如 GET 变量.表单 POST.数据库.配置文件.会话变量或 cookie)的任何数据都是不可信任的. 例如,下面的数据元素可以被认为是安全的,因为它们是在PHP中设置的. 复制代码 代码如

  • PHP关于htmlspecialchars、strip_tags、addslashes的解释

    PHP的htmlspecialchars.strip_tags.addslashes是网页程序开发中常见的函数,今天就来详细讲述这些函数的用法: 1.函数strip_tags:去掉 HTML 及 PHP 的标记 注意:本函数可去掉字串中包含的任何 HTML 及 PHP 的标记字串.若是字串的 HTML 及 PHP 标签原来就有错,例如少了大于的符号,则也会传回错误.而本函数和 fgetss() 有着相同的功能.fgetss是从文件中读取文件,并去掉html和php标记. 2.函数htmlspec

  • php HtmlReplace输入过滤安全函数

    复制代码 代码如下: // $rptype = 0 表示仅替换 html标记 // $rptype = 1 表示替换 html标记同时去除连续空白字符 // $rptype = 2 表示替换 html标记同时去除所有空白字符 // $rptype = -1 表示仅替换 html危险的标记 function HtmlReplace($str,$rptype=0) { $str = stripslashes($str); if($rptype==0) { $str = htmlspecialchar

  • php htmlentities()函数的定义和用法

    php htmlentities() 函数把字符转换为 HTML 实体,本文章向码农介绍php htmlentities() 函数基本使用方法和实例介绍,需要的码农可以参考一下. 定义和用法 htmlentities() 函数把字符转换为 HTML 实体. 提示:要把 HTML 实体转换回字符,请使用 html_entity_decode() 函数. 提示:请使用 get_html_translation_table() 函数来返回 htmlentities() 使用的翻译表. 语法 htmle

  • php htmlentities和htmlspecialchars 的区别

    The translations performed are: 复制代码 代码如下: '&' (ampersand) becomes '&' '"' (double quote) becomes '"' when ENT_NOQUOTES is not set. ''' (single quote) becomes ''' only when ENT_QUOTES is set. '<' (less than) becomes '<' '>' (gre

  • php htmlspecialchars加强版

    复制代码 代码如下: //取消HTML代码 function shtmlspecialchars($string) { if(is_array($string)) { foreach($string as $key => $val) { $string[$key] = shtmlspecialchars($val); } } else { $string = preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5})

  • php htmlspecialchars()与shtmlspecialchars()函数的深入分析

    定义和用法htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体. 预定义的字符是:•& (和号) 成为 &•" (双引号) 成为 "•' (单引号) 成为 '•< (小于) 成为 <•> (大于) 成为 >语法htmlspecialchars(string,quotestyle,character-set) 参数 描述 string 必需.规定要转换的字符串. quotestyle 可选.规定如何编码单引号和双引号.

  • php中filter函数验证、过滤用户输入的数据

    PHP Filter 简介 PHP 过滤器用于对来自非安全来源的数据(比如用户输入)进行验证和过滤. 复制代码 代码如下: //除去html标签,或除去编码特殊字符 var_dump(filter_var("<html>中文ABC@#</html><script>abc</script><b>BBB</b><span>",FILTER_SANITIZE_STRING)); //url_encoded编码

  • php过滤输入操作之htmlentities与htmlspecialchars用法分析

    本文实例讲述了php过滤输入操作htmlentities与htmlspecialchars用法.分享给大家供大家参考,具体如下: 过滤输入 (即来自所列数据源中的任何数据)是指,转义或删除不安全的字符.在数据到达应用的存储层之前,一定要过滤输入数据.这是第一道防线.假如网站的评论表单接收html,默认情况下访客可以毫无阻拦地在评论中加入恶意的<script>标签,如下标示: <p> 我的测试 </p> <script>alert(123)</scrip

  • php 对输入信息的进行安全过滤的函数代码

    复制代码 代码如下: // define constannts for input reading define('INPUT_GET', 0x0101); define('INPUT_POST', 0x0102); define('INPUT_GPC', 0x0103); /** * Read input value and convert it for internal use * Performs stripslashes() and charset conversion if neces

  • php 去除html标记--strip_tags与htmlspecialchars的区别详解

    strip_tags 去掉 HTML 及 PHP 的标记. 语法: string strip_tags(string str); 传回值: 字串 函式种类: 资料处理 内容说明 本函式可去掉字串中包含的任何 HTML 及 PHP 的标记字串.若是字串的 HTML 及 PHP 标签原来就有错,例如少了大于的符号,则也会传回错误.而本函式和 fgetss() 有着相同的功能. htmlspecialchars 将特殊字元转成 HTML 格式. 语法: string htmlspecialchars(

随机推荐