自定义PHP页面跳转函数redirect($url, $time = 0, $msg = '')
来源:互联网 发布:中国援助朝鲜 知乎 编辑:程序博客网 时间:2024/06/06 02:30
利用PHP的header()函数,可以实现页面跳转,如
1
header(
"Location: "
.
$url
);
但它有个缺点,一旦HTTP报头块已经发送,就不能使用 header() 函数,来发送其它的标头。
这个时候只能利用前端HTML或JS技术来实现页面跳转了!
怎样知道HTTP报头块已经发送了呢?
PHP的 headers_sent() 函数,可以帮忙。
PHP headers_sent() 函数
headers_sent() 函数检查 HTTP 标头是否已被发送以及在哪里被发送。
如果报头已发送,则返回 true,否则返回 false。
语法
headers_sent(file,line)
如果设置 file 和 line 参数,headers_sent() 会把输出开始的 PHP 源文件名和行号存入 file 和 line 变量中。
提示和注释
注释:一旦报头块已经发送,就不能使用 header() 函数 来发送其它的标头。使用此函数至少可以避免与 HTTP 标头有关的错误信息。
注释:可选的 file 和 line 参数是 PHP 4.3 中新加的。
例子1
1
<?php
2
// 如果报头未发送,则发送一个
3
if
(!headers_sent()) {
4
header(
"Location: http://www.w3school.com.cn/"
);
5
exit
;
6
}
7
?>
例子2
使用可选的 file 和 line 参数:
01
<?php
02
// 传递 $file 和 $line,供日后使用
03
// 不要预先为它们赋值
04
if
(!headers_sent(
$file
,
$line
)) {
05
header(
"Location: http://www.w3school.com.cn/"
);
06
exit
;
07
// Trigger an error here
08
}
else
{
09
echo
"Headers sent in $file on line $line"
;
10
exit
;
11
}
12
?>
根据上面的知识点,我们可以整理出自己的PHP跳转函数:
01
/**
02
* URL跳转
03
* @param string $url 跳转地址
04
* @param int $time 跳转延时(单位:秒)
05
* @param string $msg 提示语
06
*/
07
function
redirect(
$url
,
$time
= 0,
$msg
=
''
) {
08
$url
=
str_replace
(
array
(
"\n"
,
"\r"
),
''
,
$url
);
// 多行URL地址支持
09
if
(
empty
(
$msg
)) {
10
$msg
=
"系统将在 {$time}秒 之后自动跳转到 {$url} !"
;
11
}
12
if
(headers_sent()) {
13
$str
=
"<meta http-equiv='Refresh' content='{$time};URL={$url}'>"
;
14
if
(
$time
!= 0) {
15
$str
.=
$msg
;
16
}
17
exit
(
$str
);
18
}
else
{
19
if
(0 ===
$time
) {
20
header(
"Location: "
.
$url
);
21
}
else
{
22
header(
"Content-type: text/html; charset=utf-8"
);
23
header(
"refresh:{$time};url={$url}"
);
24
echo
(
$msg
);
25
}
26
exit
();
27
}
28
}
0 0
- 自定义PHP页面跳转函数redirect($url, $time = 0, $msg = '')
- 自定义PHP页面跳转函数redirect($url, $time = 0, $msg = '')
- 页面跳转,redirect
- php url重定向 页面跳转 代码
- Response.Redirect 关于页面跳转
- c:redirect 标签跳转页面
- php中iconv函数使用方法,URL传中文乱码问题,html页面跳转问题
- ASP.NET 使用response.redirect( "url ")跳转后,页面记录没刷新。
- forward/redirect跳转页面的区别
- 页面跳转之Forward和Redirect
- redirect springmvc中指定页面跳转方式
- JAVA MSG自定义函数调用方法:
- 给redirect.php做301跳转
- php页面跳转函数-重新定向到另一个页面
- 【转】struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-action)
- struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-act...
- struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-action)
- struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-action)
- 手势在ViewPager上的应用:OnFling MotionEvent e1 == null 的问题解决
- js动态生成form
- hdu 4812 D Tree 树的点分治
- 最大的子序列和问题
- C语言合法标识符(2024)
- 自定义PHP页面跳转函数redirect($url, $time = 0, $msg = '')
- 常用RGB颜色表
- hdu3782 xxx定律
- hdu1511 LCS
- UVA 11419 SAM I AM (二分图,最小割)
- 50道Java习题之12
- 主动使用触发的初始化操作
- [iOS]iOS AudioSession详解 Category选择 听筒扬声器切换
- POJ1002解题报告