Вход Регистрация
Файл: adultscript-2.0.3-pro/files/libraries/framework/response.php
Строк: 102
<?php
defined
('_VALID') or die('Restricted Access!');
define('CLEAN_OUTPUT'FALSE);
class 
VResponse
{
    private static 
$headers = array();
    public static function 
add_header($name$value=FALSE$replace=FALSE)
    {
        
$name = (string) $name;
        if (
$value !== FALSE) {
            
$value = (string) $value;
        }

        if (
$replace !== FALSE) {
            
self::del_header($name);
        }

        
$set FALSE;
        foreach (
self::$headers as $header) {
            if (
$header['name'] == $name) {
                
$set TRUE;
            }
        }

        if (
$set === FALSE) {
            
self::$headers[] = array('name' => $name'value' => $value);
        }
    }

    public static function 
del_header($name)
    {
        foreach (
self::$headers as $key => $header) {
            if (
$header['name'] == $name) {
                unset(
self::$headers[$key]);
            }
        }
    }

    public static function 
clear_headers()
    {
        
self::$headers = array();
    }

    public static function 
send_headers()
    {
        if (!
headers_sent()) {
            if (
is_array(self::$headers)) {
                foreach (
self::$headers as $header) {
                    if (
'Status' == $header['name']) {
                        
header('Status: '.$header['value'], TRUE, (int) $header['value']);
                    } else {
                        if (
$header['value'] === FALSE) {
                            
header($header['name']);
                        } else {
                            
header($header['name']. ': ' .$header['value']);
                        }
                    }
                }
            }
        }
    }
    
    public static function 
set_expires($seconds=60)
    {
       if (!
headers_sent()) {
            
$now $expires time();
            
$expires += $seconds;
     
            
self::add_header('Last-Modified'gmdate('D, d M Y H:i:s T'$now));
            
self::add_header('Expires'gmdate('D, d M Y H:i:s T'$expires));
            
self::add_header('Cache-Control''max-age='.$seconds);
            
            return 
TRUE;
        }
        
        return 
FALSE;    
    }
    
    public static function 
check_expires($seconds=60)
    {
        if (!empty(
$_SERVER['HTTP_IF_MODIFIED_SINCE']) && !headers_sent()) {
              if ((
$strpos strpos($_SERVER['HTTP_IF_MODIFIED_SINCE'], ';')) !== FALSE) {
                
$mod_time substr($_SERVER['HTTP_IF_MODIFIED_SINCE'], 0$strpos);
            } else {
                
$mod_time $_SERVER['HTTP_IF_MODIFIED_SINCE'];
            }
        
            
$mod_time       strtotime($mod_time);
            
$mod_time_diff  $mod_time $seconds time();
    
            if (
$mod_time_diff 0) {
                
self::add_header('Last-Modified'gmdate('D, d M Y H:i:s T'$mod_time));
                
self::add_header('Expires'gmdate('D, d M Y H:i:s T'time() + $mod_time_diff));
                
self::add_header('Cache-Control''max-age='.$mod_time_diff);
                
self::add_header('Status''304 Not Modified');
                
self::send_headers();
                exit;
            }
        }
        
        return 
FALSE;
    }
    
    public static function 
output($content$cache=FALSE$seconds=600)
    {
        if (
CLEAN_OUTPUT === TRUE) {
            
$content preg_replace("/(^[rn]*|[rn]+)[st]*[rn]+/""n"$content);
            
$content preg_replace('/ss+/'''$content);
            
$content str_replace("rn"''$content);
            
$content str_replace("n"''$content);
        }
        
        if (
VF::cfg_item('cache') == '0') {
            
$cache FALSE;
        }
        
        if (
$cache !== FALSE) {
            
self::check_expires($seconds);
            
self::set_expires($seconds);
        }
        
        
self::send_headers();
        
        return 
$content;
    }
    
    private static function 
get_client_encoding()
    {
        
$encoding false;
        if (isset(
$_SERVER['HTTP_ACCEPT_ENCODING'])) {
            
$hae $_SERVER['HTTP_ACCEPT_ENCODING'];
            if (
strpos($hae'deflate') !== FALSE) {
                
$encoding 'deflate';
            } elseif (
strpos($hae'deflate') !== FALSE) {
                
$encoding 'gzip';
            } elseif (
strpos($hae'compress') !== FALSE) {
                
$encoding 'compress';
            }
        }
            
        return 
$encoding;
    }
    
    private static function 
is_ie6()
    {
        
    }
}
?>
Онлайн: 2
Реклама