当前位置: 首页 > 编程笔记 >

PHP模拟asp中response类实现方法

齐昊焱
2023-03-14
本文向大家介绍PHP模拟asp中response类实现方法,包括了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程序设计有所帮助。

 类似资料:
  • 主要内容:尝试一下 - 实例,Response 对象ASP Response 对象用于从服务器向用户发送输出的结果。 尝试一下 - 实例 使用 ASP 写文本 本例演示如何使用 ASP 来写文本。 在 ASP 中使用 HTML 标签格式化文本 本例演示如何使用 ASP 将文本和 HTML 标签结合起来。 将用户重定向至一个不同的 URL 本例演示如何将用户重定向至一个不同的 URL。 显示随机的链接 本例演示如何创建一个随机的链接。 控制缓冲区 本

  • 本文向大家介绍JS模拟的Map类实现方法,包括了JS模拟的Map类实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS模拟的Map类。分享给大家供大家参考,具体如下: 根据java中map的属性,实现key----value保存 1、使用数组方式存储数据,(使用闭包) 2、使用JSON方式存储数据(使用原型方式拓展方法) 更多关于JavaScript相关内容感兴趣的读者可查看本站专

  • 本文向大家介绍PHP实现模拟http请求的方法分析,包括了PHP实现模拟http请求的方法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP实现模拟http请求的方法。分享给大家供大家参考,具体如下: 在http简析中,我们提到了浏览器请求资源的一个流程,那么这个流程能不能用php来模拟呢?答案是肯定的。 php模拟http请求需要实现以下步骤: 1.连接apache服务器 使用f

  • 我有这样的东西: 我想使用JUnit测试SomeClass中的execute()方法。由于someMethod(String someArg1,String someArg2)调用了REST API,所以我想模拟someMethod来返回一些预定义的响应。但不知何故,实际的somethod被调用,而不是返回预定义的响应。我如何让它工作? 以下是我尝试使用Mockito和PowerMockito的内

  • 本文向大家介绍php实现模拟post请求用法实例,包括了php实现模拟post请求用法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php实现模拟post请求的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的php程序设计有所帮助。

  • 我试图为一个类编写一个单元测试,这个类使用带有库中的的Google vision API。问题是,由于某种原因,我的模拟仍然调用真正的方法,然后抛出一个NPE,这破坏了我的测试。我以前从未在模拟上见过这种行为,我想知道我是不是做错了什么,是不是Spock/Groovy中有bug,还是与Google lib有关?