<?php
session_start();
function ProcessVariables(&$var, $key)
{
if(!Get_Magic_Quotes_GPC()) $var = AddSlashes($var);
}
class std
{
//private variables
var $in = Array();
var $Output = '';
var $InitFunc = NULL;
var $ProcessFunc = "ProcessVariables";
function &std($OutputGziped = false, $ProcessFunc = '')
{
global $_GET, $_POST, $_SESSION, $_FILES, $_COOKIE, $_SERVER, $_ENV,
$HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_SESSION_VARS, $HTTP_POST_FILES,
$HTTP_COOKIE_VARS, $HTTP_SERVER_VARS, $HTTP_ENV_VARS;
if(!$_GET && !$_POST && !$_COOKIE)
{
$_GET = &$HTTP_GET_VARS;
$_POST = &$HTTP_POST_VARS;
$_SESSION = &$HTTP_SESSION_VARS;
$_FILES = &$HTTP_POST_FILES;
$_COOKIE = &$HTTP_COOKIE_VARS;
}
if($OutputGziped) ob_start("ob_gzhandler");
else ob_start();
ob_implicit_flush(true);
if(@function_exists($ProcessFunc)) $this->ProcessFunc = $ProcessFunc;
$in = Array();
$in = array_merge($in, $_GET);
$in = array_merge($in, $_POST);
$in = array_merge($in, $_FILES);
$in = array_merge($in, $_COOKIE);
array_walk($in, "ProcessVariables");
$in = array_merge($in, $_ENV);
$in = array_merge($in, $_SERVER);
$in = array_merge($in, $_SESSION);
$in['_GET'] = &$_GET;
$in['_POST'] = &$_POST;
$in['_SESSION'] = &$_SESSION;
$in['_COOKIE'] = &$_COOKIE;
$in['_SERVER'] = &$_SERVER;
$this->in = &$in;
}
function &parse_incoming()
{
return $this->in;
}
function add_output($str)
{
$this->Output .= $str;
}
function do_output()
{
echo $this->Output;
ob_end_flush();
die;
}
}
?>
--------------------------------------------------------------------------------
这个是我的程序的一个基本类之一,用于处理输入和输出。
程序中用
$std = new std();
$in = $std->parse_incoming;
在$in中处理所有输入数据及一些服务器的变量。这些天我还会发些
原创的东东。。希望对大家有用。
$std = new std();
$in = $std->parse_incoming;
echo $in[$key]; //$key 为你的参数名称
其实你们print_r($in); 这个返回的结构了。。
这个类的用意就是想把输入和输出都用它完成,使程序真正做到OOP。(JAVA思想)
是用来处理输入输出的, 就是说用这个类你的程序就可以不关心是否打开全局变量、是否打开了magic_quotes_gpc等环境变量,所有从客户端来的数据都可以用$in这个变量中来取得
比如你提交了:http://xxx/xx.php?act=abc
那么你就可以用$in['act']
又如,你有一个表单,中间有一个文本域email
那你可以用$in['email']来读取
还有COOKIE的,SESSION的都是相似。
如果只想读取GET的就用$in['_GET']['field']
POST的用$in['_POST']['field']
.........
ProcessVariables 是对每个传递进来的变量自定义的处理过程。
Object Oriented Programming(面向对象的程序设计)