zoukankan      html  css  js  c++  java
  • php过滤字符串函数

    <?php
    class request
    {
        public  function __construct()
        {
            if(!get_magic_quotes_gpc())
            {
                if(!empty($_POST))
                {
                    foreach ($_POST as $k => &$v)
                    {
                        if(is_array($v))
                        {
                            @array_walk($v, 'urldecode');
                            @array_walk($v, 'addslashes');
                        }
                        else
                        {
                            $v = addslashes(urldecode($v));
                        }
                        $p[$k] = $v;
                    }
                    $_POST = $p;
                    unset($p);
                }
                if(!empty($_GET))
                {
                    foreach ($_GET as $k => &$v)
                    {
                        if(is_array($v))
                        {
                            @array_walk($v, 'urldecode');
                            @array_walk($v, 'addslashes');
                        }
                        else
                        {
                            $v = addslashes(urldecode($v));
                        }
                        $g[$k] = $v;
                    }
                    $_GET = $g;
                    unset($g);
                }
            }
        }
        public static function getQuery( $key )
        {
            if( isset( $_GET[$key]) )
            {
                return self::xss_clean($_GET[$key]);
            }
            else
            {
                return false;
            }
        }
        
        public static function getPost( $key )
        {
            if( isset( $_POST[$key]) )
            {
                return self::xss_clean($_POST[$key]);
            }
            else
            {
                return false;
            }        
        }
        public static function getServer($key)
        {
            $key = strtoupper($key);
            if(isset($_SERVER[$key]))
            {
                return self::xss_clean($_SERVER[$key]);
            }
            return false;
        }
        
        public static function  getSession( $key )
        {
            if( isset( $_SESSION[$key]) )
            {
                return self::xss_clean($_SESSION[$key]);
            }
            else
            {
                return false;
            }        
        }    
        public static function getCookie( $key )
        {
            if( isset( $_COOKIE[$key]) )
            {
                return $_COOKIE[$key];
            }
            else
            {
                return false;
            }        
        }
            /**
         * 过滤非法字符(分发)
         */
        private static function xss_clean($str) {
            if (is_array($str) && !empty($str)) {
                $str = self::xss_clean_arr($str);
            } else {
                $str = self::xss_clean_str($str);
            }
            return $str;
        }

        /**
         * 过滤非法字符(数组)
         */
        private static function xss_clean_arr($str) {
            foreach ($str as $key => $val) {
                if (is_array($val)) {
                    $val = self::xss_clean_arr($val);
                } else {
                    $val = self::xss_clean_str($val);
                }
                $arr[$key] = $val;
            }
            return $arr;
        }

        /**
         * 过滤非法字符(字符串)
         */
        private static function xss_clean_str($str) {
            $str = preg_replace('#(alert|cmd|passthru|eval|exec|expression|system|fopen|fsockopen|file|file_get_contents|readfile|unlink)(s*)((.*?))#si', "\1\2&#40;\3&#41;", $str);
            if (get_magic_quotes_gpc()) {
                return $str;
            } else {
                return addslashes($str);
            }
        }    
    }

  • 相关阅读:
    Solr与Lucene的区别
    查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO&UML (003),数据库(004)
    按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示: 学生ID,,数据库,企业管理,英语,有效课程数,有效平均分
    按各科平均成绩从低到高和及格率的百分数从高到低顺序
    设计模式
    查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分
    什么是Session共享?请举出使用场景
    vue中监听路由参数变化
    获取DOM元素到页面顶部的距离,亲测有效版本(转载)
    css页面滚动条出现时防止页面跳动的方法
  • 原文地址:https://www.cnblogs.com/kwishly/p/3529999.html
Copyright © 2011-2022 走看看