`
wangminshe89
  • 浏览: 691026 次
文章分类
社区版块
存档分类
最新评论

处理输入和输出的类

 
阅读更多

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


分享到:
评论

相关推荐

    Java异常处理与输入输出.ppt

    Java 异常处理与输入输出 ...Java 异常处理和输入输出是 Java 语言中两个重要的概念,用于处理程序中的运行错误和实现输入输出操作。通过了解这些概念,程序员可以更好地编写程序,提高程序的安全性和稳定性。

    java输入输出处理

    Java输入输出处理是Java编程中的一个关键领域,它涉及到程序与外部世界的数据交换,包括读取数据、写入数据以及管理内存和磁盘之间的数据流动。在Java中,输入输出通常通过流(Stream)的概念来实现,流是数据的双向...

    ACM 第01课-正确处理输入输出

    ### ACM 第01课-正确处理输入输出:深入解析与实战技巧 在计算机科学与编程领域,特别是参加ACM竞赛的选手们,掌握高效的输入输出技术是至关重要的。本课程旨在深入探讨输入输出的基本原理、常见类型以及如何优化...

    SVM支持向量机多输入单输出预测与多输入多输出预测

    在这样的场景下,SVM可以扩展为处理多输入单输出(MISO)和多输入多输出(MIMO)预测问题。 对于**多输入单输出(MISO)预测**,SVM可以接受多个特征作为输入,然后预测一个单一的输出值。在MISO问题中,SVM会尝试...

    BP神经网络的多输入单输出、多输入多输出预测

    BP(Back Propagation)神经网络是一种基于梯度下降法的监督学习模型,由多个层(输入层、隐藏层和输出层)组成。它在处理非线性问题时表现突出,尤其在预测任务中,如时间序列预测、分类和回归等。 **多输入单输出...

    BP_bp多输入_matlab神经网络_多输出预测_多输入多输出_BP多输出

    在这个“BP_bp多输入_matlab神经网络_多输出预测_多输入多输出_BP多输出”的项目中,我们看到的是一个利用MATLAB实现的BP神经网络模型,该模型具有多输入和多输出的功能,适用于多种变量间的复杂关系预测。...

    Java异常处理及输入输出流技术实验报告

    Java异常处理和输入输出流技术在Java编程中扮演着至关重要的角色,特别是在开发涉及文件操作的应用程序时。在这个实验报告中,学生被要求设计一个简单的文本编辑器,该编辑器需要具备多文件处理、文件创建、浏览、...

    JAVA输入输出流实验报告

    实验过程中,我们学习了如何捕获并处理可能出现的`IOException`,这是处理输入输出操作时常见的异常类型。当出现文件找不到或无法读取等情况时,程序会抛出此类异常,我们需要通过`catch`块来妥善处理。 通过这两个...

    java输入输出流与文件处理

    **输入输出流与文件处理**在编程领域占据着核心地位,特别是在Java中,通过`java.io`包提供了丰富的类和接口来支持输入输出操作。这包括从键盘读取用户输入、从文件或网络读取数据、以及将数据写入文件或网络等场景...

    输入输出流和文件操作

    Java程序设计中的输入输出流和文件操作是编程中不可或缺的部分,它们允许程序与外部世界进行数据交换,包括读取文件内容、写入数据到文件、以及处理标准输入输出。以下是对这些概念的详细阐述: 1. **文件和流的...

    SVM多输入多输出预测

    **SVM多输入多输出预测**是机器学习领域中一种高级的应用形式,它扩展了传统的支持向量机(Support Vector Machine, SVM)算法,以处理更复杂的数据结构和任务。在传统的SVM中,我们通常处理的是单输入单输出的问题...

    多输入多输出SVM_SVM

    传统的SVM处理的是单输入单输出的问题,即每个样本只有一个特征向量和一个目标变量。然而,在现实世界的数据中,我们往往面临多输入多输出的复杂情况,例如,多个输入变量可能同时影响多个输出变量,这时就需要用到...

    java代码输入 输出

    - 在处理输入输出操作时,可能会遇到各种异常,如`IOException`。 - 示例代码中通过`try-catch`语句块来捕获并处理这些异常,确保程序不会因为异常而崩溃。 - 特别注意,在`finally`块中关闭打开的资源(如`...

    计算机系统结构输入输出系统PPT课件.pptx

    计算机系统结构输入输出系统是指处理机与主存储器之外的部分统称为输入输出系统,包括输入输出设备、输入输出接口和输入输出软件等。实际上,运算器、控制器、主存储器和总线等也要通过输入输出系统来管理。 输入...

    多输入多输出SVM,适用于数据预测

    它扩展了传统的支持向量机(SVM),允许同时处理多个输入变量和多个输出变量,为复杂的非线性关系建模提供了可能。 支持向量机本身是一种二分类模型,其基本思想是找到一个超平面,使得两类样本在这个超平面上的...

    输入输出与文件处理

    (1) 理解流式输入输出的基本原理。 (2) 掌握DataInputStream和DataOutputStream类的使用方法。 (3) 掌握File、FileInputStream、FileOutputStream类的使用方法。 (4) 掌握RandomAccessFile类的使用方法。

    基于matlab多输入多输出系统的状态空间simulink模型获得阶跃响应

    在MATLAB环境中,多输入多输出(MIMO)系统的分析与设计是控制理论中的一个重要领域。...通过学习这个案例,用户可以更深入地理解如何在MATLAB和Simulink中处理多输入多输出系统的动态行为,并进行系统性能评估。

    流类库与输入/输出 c++实验报告

    流类库是C++标准库的重要组成部分,它提供了一种统一处理输入和输出的方法,包括控制数据格式、转换数据类型以及读写文件等功能。 1. **流的对齐方式和基数转换**: - `std::left` 和 `std::right` 是`iomanip`库...

    java输入输出流,电子课件

    在Java中,输入输出流分为两大类:字节流(Byte Stream)和字符流(Character Stream)。字节流处理单个字节的数据,而字符流处理Unicode字符。Java的I/O流体系由四个主要接口构成:InputStream和OutputStream处理...

    LSTM多输入输出时间序列

    标题“LSTM多输入输出时间序列”指的是使用长短期记忆网络(LSTM)处理具有多个输入和输出的时间序列预测问题。在机器学习和深度学习领域,时间序列分析通常用于预测未来的趋势,如股票价格、天气预报或电力需求等。...

Global site tag (gtag.js) - Google Analytics