PHP 跳轉,即重定向浏覽器到指定的 URL,是一個很常見的功能。這種功能也有一些細節性的要求,比如等待多少秒以後跳轉,用不用JavaScript實現跳轉,等等。下面的跳轉方法考慮到很多,並參數化,可以用到具體的項目當中。
<?php /** * 重定向浏覽器到指定的 URL * * @param string $url 要重定向的 url * @param int $delay 等待多少秒以後跳轉 * @param bool $js 指示是否返回用於跳轉的 JavaScript 代碼 * @param bool $jsWrapped 指示返回 JavaScript 代碼時是否使用 <mce:script type="text/javascript"><!-- 標簽進行包裝 * @param bool $return 指示是否返回生成的 JavaScript 代碼 */ function redirect($url, $delay = 0, $js = false, $jsWrapped = true, $return = false) { $delay = (int)$delay; if (!$js) { if (headers_sent() || $delay > 0) { echo <<<EOT <html> <head> <meta http-equiv="refresh" content="{$delay};URL={$url}" /> </head> </html> EOT; exit; } else { header("Location: {$url}"); exit; } } $out = ''; if ($jsWrapped) { $out .= '<script language="JavaScript" type="text/javascript">'; } $url = rawurlencode($url); if ($delay > 0) { $out .= "window.setTimeOut(function () { document.location='{$url}'; }, {$delay});"; } else { $out .= "document.location='{$url}';"; } if ($jsWrapped) { $out .= ' // --></mce:script>'; } if ($return) { return $out; } echo $out; exit; } ?>