static function redirectFromAnyPageOnce($arr) { $res = hq::matchOnce($arr); if (is_string($res)) { if (isset($res[0]) && $res[0] === '*') { $res[0] = ' '; $res = trim($res); hq::URL() . $res; } else { if (isset($res[0]) && $res[0] === '?') { $url = explode('?', hq::URL(), 2); $base = $url[0]; if (isset($url[1])) { $url = explode('&', $url); $params = array(); foreach ($url as $str) { $str = explode('=', $str, 2); if (!isset($str[1])) { $params[$str[0]] = null; } else { $params[$str[0]] = $str[1]; } } $res[0] = ' '; $res = trim($res); $res = explode('&', $res); foreach ($res as $str) { $str = explode('=', $str, 2); if (!isset($str[1])) { $params[$str[0]] = null; } else { if ($str[1] === '%unset%') { unset($params[$str[0]]); } else { $params[$str[0]] = $str[1]; } } } $res = $base . '?'; $n = 0; foreach ($params as $par => $val) { if ($n !== 0) { $res .= '&'; } if ($val === null) { $res .= $par; } else { $res .= $par . '=' . $val; } $n++; } } else { $res = $base . $res; } } else { if ($res === '' || $res[0] === '/') { $res = hq::baseURL() . $res; } } } if ($res === hq::URL()) { return false; } if (hq::$redirectTestMode) { echo "\n<br>\n Redirect To " . $res . "\n<br>\n"; return true; } header('Location: ' . $res); exit; } return false; }