PHP模擬asp中response類實(shí)現(xiàn)方法
本文實(shí)例講述了PHP模擬asp中response類的方法。分享給大家供大家參考。具體如下:
習(xí)慣了asp或是asp.net開發(fā)的人, 他們會經(jīng)常用到response類,這個(gè)類用于處理客戶端的響應(yīng),可以實(shí)現(xiàn)跳轉(zhuǎn),輸出等功能. 在php中沒有這個(gè)類,但是確實(shí)可以通過函數(shù)來模擬這個(gè)類.
/* * 類用途: 實(shí)現(xiàn)類似于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程序設(shè)計(jì)有所幫助。
相關(guān)文章
詳解PHP實(shí)現(xiàn)異步調(diào)用的4種方法
這篇文章主要為大家詳細(xì)介紹PHP實(shí)現(xiàn)異步調(diào)用的4種方法,感興趣的小伙伴們可以參考一下2016-03-03php反射學(xué)習(xí)之不用new方法實(shí)例化類操作示例
這篇文章主要介紹了php反射學(xué)習(xí)之不用new方法實(shí)例化類操作,結(jié)合實(shí)例形式進(jìn)一步分析了php基于反射不用new方法進(jìn)行實(shí)例化類的相關(guān)操作技巧,需要的朋友可以參考下2019-06-06php 數(shù)據(jù)庫字段復(fù)用的基本原理與示例
php 數(shù)據(jù)庫字段復(fù)用的基本原理與示例,需要的朋友可以參考下。2011-07-07最新用php獲取谷歌PR值算法,附上php查詢PR值代碼示例
用php程序怎么獲取谷歌PR值,已經(jīng)有好幾個(gè)人問我php查詢PR值怎么實(shí)現(xiàn)的,于是現(xiàn)在就把php查詢PR值法算法附上,大家可以直接使用下面的代碼去測試php查詢PR值2011-12-12解決了Ajax、MySQL 和 Zend Framework 的亂碼問題
功夫不負(fù)有心人,花了將近一天時(shí)間,終于解決了Ajax 、MySQL 和 Zend Framework 的亂碼問題。現(xiàn)在總結(jié)如下,以供參考。2009-03-03PHP+AJAX實(shí)現(xiàn)無刷新注冊(帶用戶名實(shí)時(shí)檢測)
PHP+AJAX實(shí)現(xiàn)無刷新注冊(帶用戶名實(shí)時(shí)檢測)...2006-12-12SQL server不支持utf8 php卻用utf8的矛盾問題解決方法
這篇文章主要介紹了SQL server不支持utf8 php卻用utf8的矛盾問題解決方法,需要的朋友可以參考下2020-03-03