php 对接 asp,PHP模拟asp中response类实现方法

本文实例讲述了PHP模拟asp中response类的方法。分享给大家供大家参考。具体如下:

习惯了asp或是asp.net开发的人, 他们会经常用到response类,这个类用于处理客户端的响应,可以实现跳转,输出等功能. 在php中没有这个类,但是确实可以通过函数来模拟这个类.

/*

* 类用途: 实现类似于asp中的response功能

*/

final class Response {

private $headers = array();

private $output;

private $level = 0;

public function addHeader($key, $value) {

$this->headers[$key] = $value;

}

public function removeHeader($key) {

if (isset($this->headers[$key])) {

unset($this->headers[$key]);

}

}

public function redirect($url) {

header('Location: ' . $url);

exit;

}

public function setOutput($output, $level = 0) {

$this->output = $output;

$this->level = $level;

}

private function compress($data, $level = 0) {

if (isset($_SERVER['HTTP_ACCEPT_ENCODING']) && (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== FALSE)) {

$encoding = 'gzip';

}

if (isset($_SERVER['HTTP_ACCEPT_ENCODING']) && (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip') !== FALSE)) {

$encoding = 'x-gzip';

}

if (!isset($encoding)) {

return $data;

}

if (!extension_loaded('zlib') || ini_get('zlib.output_compression')) {

return $data;

}

if (headers_sent()) {

return $data;

}

if (connection_status()) {

return $data;

}

$this->addHeader('Content-Encoding', $encoding);

return gzencode($data, (int)$level);

}

public function output() {

if ($this->level) {

$ouput = $this->compress($this->output, $this->level);

} else {

$ouput = $this->output;

}

if (!headers_sent()) {

foreach ($this->headers as $key => $value) {

header($key . ': ' . $value);

}

}

echo $ouput;

}

}

希望本文所述对大家的php程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值