PHP 跳转,即重定向浏览器到指定的 URL,是一个很常见的功能。这种功能也有一些细节性的要求,比如等待多少秒以后跳转,用不用JavaScript实现跳转,等等。下面的跳转方法考虑到很多,并参数化,可以用到具体的项目当中。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
<?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 ;
}
?>
|