• 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);
            }
        }    
    }

  • 相关阅读:
    koa 放置 前台打包dist 目录
    tomcat startup.bat 包含springboot的输出 里面乱码的解决方案
    base64 转文件上传
    4时4态 加被动 例句:I will have been being done
    软件推荐 Notable / 现改用 Vnote 了
    [win10] 开始-设置 / 右键-显示设置 / 右键个性化 等都不好使了。。 ms-settings:display
    viewui tree 自定义化(源码copy出来改动)#添加 获取selected 解决方案
    idea 暂存 Stash Changes Git/Repository/Stash Changes 恢复暂存 UnStash Changes
    vm 虚拟机总是蓝屏 移除打印机和声卡 移除这俩硬件 (大文件用飞秋传输)
    docker中mysql 汉字乱码,显示问号
  • 原文地址:https://www.cnblogs.com/kwishly/p/3529999.html
Copyright © 2020-2023  润新知