Go to the documentation of this file.00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00017 final class HeaderUtils extends StaticFactory
00018 {
00019 private static $headerSent = false;
00020 private static $redirectSent = false;
00021 private static $cacheLifeTime = 3600;
00022
00023 public static function redirectRaw($url)
00024 {
00025 header("Location: {$url}");
00026
00027 self::$headerSent = true;
00028 self::$redirectSent = true;
00029 }
00030
00031 public static function redirectBack()
00032 {
00033 if (isset($_SERVER['HTTP_REFERER'])) {
00034 header("Location: {$_SERVER['HTTP_REFERER']}");
00035 self::$headerSent = true;
00036 self::$redirectSent = true;
00037 return $_SERVER['HTTP_REFERER'];
00038 } else
00039 return false;
00040 }
00041
00042 public static function getParsedURI()
00043 {
00044 if ($num = func_num_args()) {
00045 $out = self::getURI();
00046 $uri = null;
00047 $arr = func_get_args();
00048
00049 for ($i = 0; $i < $num; ++$i)
00050 unset($out[$arr[$i]]);
00051
00052 foreach ($out as $key => $val) {
00053 if (is_array($val)) {
00054 foreach ($val as $k => $v)
00055 $uri .= "&{$key}[{$k}]={$v}";
00056 } else
00057 $uri .= "&{$key}={$val}";
00058 }
00059
00060 return $uri;
00061 }
00062
00063 return null;
00064 }
00065
00066 public static function sendCachedHeader()
00067 {
00068 header('Cache-control: private, max-age=3600');
00069
00070 header(
00071 'Expires: '
00072 .date('D, d M Y H:i:s', date('U') + self::$cacheLifeTime)
00073 .' GMT'
00074 );
00075
00076 self::$headerSent = true;
00077 }
00078
00079 public static function sendNotCachedHeader()
00080 {
00081 header('Cache-control: no-cache');
00082 header(
00083 'Expires: '
00084 .date('D, d M Y H:i:s', date('U') - self::$cacheLifeTime)
00085 .' GMT'
00086 );
00087
00088 self::$headerSent = true;
00089 }
00090
00091 public static function sendContentLength($length)
00092 {
00093 Assert::isInteger($length);
00094
00095 header(
00096 "Content-Length: {$length}"
00097 );
00098
00099 self::$headerSent = true;
00100 }
00101
00102 public static function sendHttpStatus(HttpStatus $status)
00103 {
00104 header($status->toString());
00105
00106 self::$headerSent = true;
00107 }
00108
00109 public static function isHeaderSent()
00110 {
00111 return self::$headerSent;
00112 }
00113
00114 public static function forceHeaderSent()
00115 {
00116 self::$headerSent = true;
00117 }
00118
00119 public static function isRedirectSent()
00120 {
00121 return self::$redirectSent;
00122 }
00123
00124 public static function setCacheLifeTime($cacheLifeTime)
00125 {
00126 self::$cacheLifeTime = $cacheLifeTime;
00127 }
00128
00129 public static function getCacheLifeTime()
00130 {
00131 return self::$cacheLifeTime;
00132 }
00133
00134 private static function getURI()
00135 {
00136 $out = null;
00137
00138 parse_str($_SERVER['QUERY_STRING'], $out);
00139
00140 return $out;
00141 }
00142 }
00143 ?>