加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP模拟asp中response类实现方法

发布时间:2020-12-13 02:49:07 所属栏目:PHP教程 来源:网络整理
导读:《:PHP模拟asp中response类实现方法》要点: 本文介绍了:PHP模拟asp中response类实现方法,希望对您有用。如果有疑问,可以联系我们。 PHP编程 本篇章节讲解PHP模拟asp中response类的办法.供大家参考研究.具体如下: PHP编程 习惯了asp或是asp.net

《:PHP模拟asp中response类实现方法》要点:
本文介绍了:PHP模拟asp中response类实现方法,希望对您有用。如果有疑问,可以联系我们。

PHP编程本篇章节讲解PHP模拟asp中response类的办法.分享给大家供大家参考.具体如下:

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

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编程希望本文所述对大家的php程序设计有所赞助.

欢迎参与《:PHP模拟asp中response类实现方法》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读