<?php
class ev
{
    public $cookie;
    public $post;
    public $get;
    public $file;
    public $url;
    public $G;
    private $e;

    public function __construct()
    {if (ini_get('magic_quotes_gpc')) {  //判断php.ini是否有magic_quotes_gpc过滤(转义)函数
            $get    = $this->stripSlashes($_REQUEST);
            $post   = $this->stripSlashes($_POST);
            $this->cookie = $this->stripSlashes($_COOKIE);
        } else {
            $get    = $_REQUEST;
            $post   = $_POST;
            $this->cookie = $_COOKIE;
        }

        $this->file = $_FILES;
        $this->get = $this->initData($get);
        $this->post = $this->initData($post);
        $this->url = $this->parseUrl();
        $this->cookie = $this->initData($this->cookie);
    }

    //解析url
    public function parseUrl()
    {
        if(isset($_REQUEST['route']))
        {
            return explode('-',$_REQUEST['route']);  //解析路由
        }
        elseif(isset($_SERVER['QUERY_STRING']))
        {
            $tmp = explode();
            $tp = explode(],);
            ]);
        }
        else return false;
    }

    //返回$_REQUEST数组内的值
    public function get($par)
    {
        if(isset($this->get[$par]))return $this->get[$par];
        else return false;
    }

    //返回$_POST数组内的值
    public function post($par)
    {
        if(isset($this->post[$par]))return $this->post[$par];
        else return false;
    }

    //返回URL数组中的值
    public function url($par)
    {
        $par = intval($par);
        if(isset($this->url[$par]))return $this->url[$par];
        else return false;
    }

    //设置COOKIE
    )
    {
        if($time)$time = TIME + $time;
        ;
        if(CDO)setCookie(CH.$name,$value,$time,CP,CDO);
        else setCookie(CH.$name,$value,$time,CP);
    }

    //获取cookie
    )
    {
        if(isset($this->cookie[CH.$par]))return $this->cookie[CH.$par];
        elseif(isset($this->cookie[$par]) && $nohead)return $this->cookie[$par];
        else return false;
    }

    //获取$_FILE
    public function getFile($par)
    {
        if(isset($this->file[$par]))return $this->file[$par];
        else return false;
    }

    //初始化数据
    public function initData($data)
    {
        if(is_array($data))
        {
            foreach($data as $key => $value)
            {
                if($this->strings->isAllowKey($key) === false)
                {
                    unset($data[$key]);
                }
                else
                $data[$key] = $this->initData($value);
            }
            return $data;
        }
        else
        {
            if(is_numeric($data))
            {
                ] === )return $this->addSlashes(htmlspecialchars(str_replace("'","'",$data)));
                )return $this->addSlashes(htmlspecialchars(str_replace("'","'",$data)));
                if(strpos($data,'.'))return floatval($data);
                else return intval($data);
            }
            if(is_string($data))return $this->addSlashes(htmlspecialchars(str_replace("'","'",$data)));
            if(is_bool($data))return (bool)$data;
            return false;
        }
    }

    //去除转义字符
    public function stripSlashes($data)
    {
        if (is_array($data)) {
              foreach ($data as $key => $value) {
                $data[$key] = $this->stripSlashes($value);
              }
        } else {
              $data = stripSlashes(trim($data));
        }

        return $data;
    }

    //添加转义字符
    public function addSlashes($data)
    {
        if (is_array($data)) {
              foreach ($data as $key => $value) {
                $data[$key] = $this->addSlashes($value);
              }
        } else {
              $data = addSlashes(trim($data));
        }
        return $data;
    }

    //获取客户端IP
    public function getClientIp()
    {
        if(!isset($this->e['ip']))
        {
            if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
                $ip = getenv("HTTP_CLIENT_IP");
            else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
                $ip = getenv("HTTP_X_FORWARDED_FOR");
            else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
                $ip = getenv("REMOTE_ADDR");
            else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
                $ip = $_SERVER['REMOTE_ADDR'];
            else
                $ip = "unknown";
            $this->e['ip'] = $ip;
        }
        return $this->e['ip'];
    }

    //根据二级域名获取信息
    public function getSecondDomain()
    {
        $domain = $_SERVER['HTTP_HOST'];
        $domain = str_replace(array('com.cn','net.cn','gov.cn','org.cn'),'com',$domain);
        $tmp = explode('.',$domain);
        )return false;
        elseif(is_numeric($tmp[]))return false;
        ];
    }
}
?>

URL、表单数据、IP等处理类的更多相关文章

  1. 【ASP.NET Web API教程】5.2 发送HTML表单数据:URL编码的表单数据

    原文:[ASP.NET Web API教程]5.2 发送HTML表单数据:URL编码的表单数据 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本系列教程,请先看前面的内 ...

  2. 利用BeanUtils工具类封装表单数据

    一.BeanUtils工具类的使用 1.首先导入BeanUtils工具类的jar包 commons-beanutils-1.8.0.jar commons-logging-1.1.1.jar 2.se ...

  3. hyper发送表单数据

    前言 某个美丽的下午,运维把服务器上的nginx升级了,http协议也变成了http2.0,我本地的requests再也连接不到服务器,然后就找到了额hyper 但是hyper的文档写的很简单,而且相 ...

  4. flask 处理表单数据

    处理表单数据 表单数据的处理涉及很多内容,从获取数据到保存数据大致有以下步骤: 1.  解析请求,获取表单数据 2.  对数据进行必要的转换,比如讲勾选框的值转换成python的布尔值 3.  验证数 ...

  5. jQuery序列化表单数据 serialize()、serializeArray()及使用

    1.serialize() 方法: serialize() 方法通过序列化表单值,创建 URL 编码文本字符串. 您可以选择一个或多个表单元素(比如 input 及/或 文本框),或者 form 元素 ...

  6. SpringMVC封装表单数据

    1.domain类 package com.xiaostudy.domain; public class User { private int id; private String username; ...

  7. ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第四篇:传递表单数据

    摘要      本文将完成我们“MVC公告发布系统”的公告发布功能,以此展示在ASP.NET MVC中如何传递处理表单的数据. 前言      通过前几篇文章,我们已经能比较自如的使用ASP.NET ...

  8. day 84 Xadmin组件之构建表单数据

    一 .先设置一些相关配置 1. 创建数据库模型. 在app01 下创建 from django.db import models # Create your models here. class Au ...

  9. Servlet的5种方式实现表单提交(注册小功能),后台获取表单数据

    用servlet实现一个注册的小功能 ,后台获取数据. 注册页面: 注册页面代码 : <!DOCTYPE html> <html> <head> <meta ...

  10. Struct2提交表单数据到Acion

    Struct2提交表单数据到Action,Action取表单的数据,传递变量.对象 HTML.jsp <form action="reg.do" method="p ...

随机推荐

  1. iOS-开发技巧-页面布局

    #pragma mark - Life Cycle//1.初始化//2.view did load//3.view will appear…#pragma mark - System Delegate ...

  2. jquery选中下拉列表的某个值

    $('#villageToiletAnn').val('xxx'); id是select的ID,不是option的ID

  3. Django--models基础

    需求 了解models字段和参数​ 速查 models.py 1 2 3 class UserInfo(models.Model):     ctime = models.DateTimeField( ...

  4. 算法解读:s变量和数组

    算法是解决问题并获得结果的过程.在这个处理过程中,问题以数据的形式输入,结果同样以数据的形式输出,在算法的处理过程中,也需要各种临时的数据. 数据是什么? 数据是多种不同信息的表现. 以料理中的食谱为 ...

  5. JS 中对象的简单创建和继承

    对象的简单创建 1.通过对象直接量创建 比如 var obj = {}; 2.通过new 创建 比如 var obj = new Object(); // 相当于var obj = {}; var a ...

  6. Ajax学习整理

    什么是ajax?W3School中给ajax的定义是: 1.AJAX = 异步 JavaScript 和 XML. 2.AJAX 是一种用于创建快速动态网页的技术. 3.通过在后台与服务器进行少量数据 ...

  7. java内部类的使用

    内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类 如同一个人是由大脑.肢体.器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液.跳动) 显然, ...

  8. ajax onblur 用法

    value为当前框中的值 <input  name="num"type="text"  onblur="changeorder(id,this. ...

  9. Python参数组合

    参数定义的顺序必须是:①必选参数.②默认参数.③可选参数.④命名关键字参数.⑤关键字参数 #a,b为必选参数:c为默认参数:args为可变参数:kw为关键字参数 def f1(a,b,c=0,*arg ...

  10. mysql乱码以及Data too long for column全解(最完整实用版)

    今天系统升级,开发.测试说本地环境.测试环境都没有问题,都用ssh client升的,演示环境报错了Data too long for column. 仔细检查了下,表字符集都是utf-8,目测长度肯 ...