|  客服中心  |  网站导航
当前位置: 首页 » 资讯 » 商业服务 » PHP模拟asp中response类实现方法

PHP模拟asp中response类实现方法

放大字体  缩小字体 发布日期:2015-11-08 来源:http://www.ccplaza.net   作者:中商城
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)