URL、表单数据、IP等处理类
<?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等处理类的更多相关文章
- 【ASP.NET Web API教程】5.2 发送HTML表单数据:URL编码的表单数据
原文:[ASP.NET Web API教程]5.2 发送HTML表单数据:URL编码的表单数据 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本系列教程,请先看前面的内 ...
- 利用BeanUtils工具类封装表单数据
一.BeanUtils工具类的使用 1.首先导入BeanUtils工具类的jar包 commons-beanutils-1.8.0.jar commons-logging-1.1.1.jar 2.se ...
- hyper发送表单数据
前言 某个美丽的下午,运维把服务器上的nginx升级了,http协议也变成了http2.0,我本地的requests再也连接不到服务器,然后就找到了额hyper 但是hyper的文档写的很简单,而且相 ...
- flask 处理表单数据
处理表单数据 表单数据的处理涉及很多内容,从获取数据到保存数据大致有以下步骤: 1. 解析请求,获取表单数据 2. 对数据进行必要的转换,比如讲勾选框的值转换成python的布尔值 3. 验证数 ...
- jQuery序列化表单数据 serialize()、serializeArray()及使用
1.serialize() 方法: serialize() 方法通过序列化表单值,创建 URL 编码文本字符串. 您可以选择一个或多个表单元素(比如 input 及/或 文本框),或者 form 元素 ...
- SpringMVC封装表单数据
1.domain类 package com.xiaostudy.domain; public class User { private int id; private String username; ...
- ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第四篇:传递表单数据
摘要 本文将完成我们“MVC公告发布系统”的公告发布功能,以此展示在ASP.NET MVC中如何传递处理表单的数据. 前言 通过前几篇文章,我们已经能比较自如的使用ASP.NET ...
- day 84 Xadmin组件之构建表单数据
一 .先设置一些相关配置 1. 创建数据库模型. 在app01 下创建 from django.db import models # Create your models here. class Au ...
- Servlet的5种方式实现表单提交(注册小功能),后台获取表单数据
用servlet实现一个注册的小功能 ,后台获取数据. 注册页面: 注册页面代码 : <!DOCTYPE html> <html> <head> <meta ...
- Struct2提交表单数据到Acion
Struct2提交表单数据到Action,Action取表单的数据,传递变量.对象 HTML.jsp <form action="reg.do" method="p ...
随机推荐
- 【转载】关于 Ubuntu 的小知识分享
转载自:http://os.51cto.com/art/201307/402197.htm 一.默认开机直接进入到Ubuntu命令行界面 安装Ubuntu后,开机会默认进入到图形界面,如果不喜欢图形界 ...
- js时间对象格式化 format(转载)
/** * 时间对象的格式化 */ Date.prototype.format = function(format){ /* * format="yyyy-MM-dd hh:mm:ss&qu ...
- Java泛型数组
文章来自http://blog.csdn.net/orzlzro/article/details/7017435 Java 不支持泛型数组.也就是说, List<String>[] ls ...
- cocos2dx-3.x 导出自定义类到 lua 过程详解
转载请注明出处:http://www.cnblogs.com/Ray1024 一.简介 最近正在学习cocos2d中的lua游戏开发,因为lua开发的热更新特性,大家开发游戏好像都会优先选择lua作为 ...
- Django--上传文件
需求 Django中forms表单上传文件处理 速查 views.py 1 2 3 4 5 6 7 8 9 def upload(request): if request.method==' ...
- Java魔法堂:自定义和解析注解
一.前言 注解(Annotation)作为元数据的载体,为程序代码本身提供额外的信息,使用过MyBatis等ORM框架的朋友对 @Insert 的注解应该不陌生了,这是MyBatis自定义的注解,显然 ...
- AndroidStudio-OSX 常用快捷键整理
整理完OSX的快捷键后自然少不了开发环境的快捷键了,暂时整理了些自己常用的 其实AS很多可能用得比较多的快捷键完全是跟MAC的文本编辑快捷键重复的,比如光标跳转和选择文本,这部分去那边参考就好 C ...
- 0525Sprint回顾
1.回顾组织 主题:“我们下次怎么样才能更加认真对待?” 时间:设定为1至2个小时. 参与者:整个团队. 场所:能够在不受干扰的情况下讨论. 秘书:指定某人当秘书,筹备.记录.整理. 2.回顾流程 ...
- C#开发ActiveX网页截图控件
故事背景:Java组的小伙伴需要一个能在IE(还是6...)下截图并返回给网页的功能,但是IE做起来很麻烦(可能根本做不到),于是找到我写一个ActiveX控件实现此功能,想着可能还有其他小伙伴需要这 ...
- 可拖动FPS显示框(UGUI)
简介 本来是想往上找一个可拖动FPS显示框的(我记得以前有人写过),然而搜了一个多小时都没搜到,索性自己写了一个,花费不到20分钟,看来还是自己动手丰衣足食啊 o(╯□╰)o 效果 上下的Toast不 ...