处理输入和输出的类

来源:互联网 发布:李白在国外知名度知乎 编辑:程序博客网 时间:2024/05/15 13:40

<?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(面向对象的程序设计)


 

原创粉丝点击