• SQL过滤器类


    <?php

    /***

     * SQL过滤器

     * Project: SQL filter

     * This is  a freeware

     * Site: http://www.cnblogs.com/lsl8966/

     * $Id: filter.class.php 108 2012-05-20 09:39:01Z lsl8966 $

     * Copyright (C) 2012-2013 gznc.edu.cn Developer Team. All Rights Reserved.

     */

    class filter{

    public   $str;

    Private  $keyword= '=|===|==|<>|or|and|exec|insert|select|delete|update|count|*|'

                          .'%|chr|mid|master|truncate|char|declare|execute|create|drop|grant|declared|from';

     

    /**

    关键字统计

    * @Param  string $str 源字符串

    * @return array  统计出每一个关键字出现的次数和总数,并返回一个数组

    */

    public function strFilter($str){

     /* 自定义关键词 */

    $kArray = explode('|',$this->keyword);

    $cArray = $this->full_count_words($str);

    $rArray = array();

    foreach( $kArray as $k=>$v ){

    if($cArray[$v]>0){

    $rArray[$v] =  $cArray[$v];

    $rArray['count'] += $cArray[$v];

    }

    }

    return $rArray;

    }

     

    /**

    单引号处理

    * @Param  string $str 源字符串

    * @return string  替换后的字符串

    */

    public function strReplace($str){

    str_replace("\'","'",$str);

    return str_replace("'","\'",$str);

    }

     

    /**

    转义处理

    * @Param  string $str 源字符串

    * @return string  替换后的字符串

    */

    public function strChecked($value)

    {

    /* 去除斜杠 */ 

    if (!get_magic_quotes_gpc())

    {  

    $value = stripslashes($value);

    }

    /* 如果不是数字则加引号 */

    if (!is_numeric($value))

      {

    $value = "'" . mysql_real_escape_string($value) . "'";

      }

    return $value;

    }

     

    /**

    *统计单词个数

    *@Param String $str 源字符串

    *@return Array 返回一个统计过后的数组,分别记录每一个单词出现的次数

    **/

    public function full_count_words($str) {

     /* 返回完整数组,包含字符串里每个单词 */

    $words = str_word_count($str,1);

    $result = array();

    foreach ($words as $w) {

     $lw = strtolower($w);

     //判断单词是否是第一次出现,是则设置为1,否则就增加1

    if (!(isset($result[$lw]))) {

     $result[$lw] = 1;

     } else {

     $result[$lw]++;

     }

     }

     return $result;

    }

     

    /**

    统计参数个数

    * @return 返回参数的个数

    */

    public function parsh_url(){

    echo count($_REQUEST);

     }

    }

     

    /* 实例 */

    $s = new filter;

    $r = $s->strFilter($_GET[id]);

    if($r['count']>0){

    echo '请您进行合法输入,你的输入里面含有<font color=red>'.$r['count'].'</font>个关键词!';

    } else {

    echo $s->strReplace($_GET['id']);

    }

    ?>

     

    现主要从事PHP、Uinx/Linux、C/C++等方面的项目开发。
  • 相关阅读:
    web测试方法总结
    APP测试点总结
    函数初识
    字符编码及文件操作
    简单购物车程序(Python)
    基本数据类型(列表,元祖,字典,集合)
    python基础
    基本数据类型(数字和字符串)
    Python入门
    操作系统
  • 原文地址:https://www.cnblogs.com/lsl8966/p/2519967.html
Copyright © 2020-2023  润新知