php重定向网页,php重定向网页

利用PHP的header()函数,可以实现页面跳转,如

1header("Location: ".$url);

但它有个缺点,一旦HTTP报头块已经发送,就不能使用 header() 函数,来发送其它的标头。

这个时候只能利用前端HTML或JS技术来实现页面跳转了!

怎样知道HTTP报头块已经发送了呢?

PHP的 headers_sent() 函数,可以帮忙。

PHP headers_sent() 函数

headers_sent() 函数检查 HTTP 标头是否已被发送以及在哪里被发送。

如果报头已发送,则返回 true,否则返回 false。

语法headers_sent(file,line)参数描述

file,line可选。

如果设置 file 和 line 参数,headers_sent() 会把输出开始的 PHP 源文件名和行号存入 file 和 line 变量中。

提示和注释

注释:一旦报头块已经发送,就不能使用 header() 函数 来发送其它的标头。使用此函数至少可以避免与 HTTP 标头有关的错误信息。

注释:可选的 file 和 line 参数是 PHP 4.3 中新加的。

例子1

1

2// 如果报头未发送,则发送一个

3if(!headers_sent()) {

4header("Location: http://www.w3school.com.cn/");

5exit;

6}

7?>

例子2

使用可选的 file 和 line 参数:

01

02// 传递 $file 和 $line,供日后使用

03// 不要预先为它们赋值

04if(!headers_sent($file,$line)) {

05header("Location: http://www.w3school.com.cn/");

06exit;

07// Trigger an error here

08}else{

09echo"Headers sent in $file on line $line";

10exit;

11}

12?>

根据上面的知识点,我们可以整理出自己的PHP跳转函数:

01/**

02* URL跳转

03* @param string $url 跳转地址

04* @param int $time 跳转延时(单位:秒)

05* @param string $msg 提示语

06*/

07functionredirect($url,$time= 0,$msg='') {

08$url=str_replace(array("\n","\r"),'',$url);// 多行URL地址支持

09if(empty($msg)) {

10$msg="系统将在 {$time}秒 之后自动跳转到 {$url} !";

11}

12if(headers_sent()) {

13$str=";

14if($time!= 0) {

15$str.=$msg;

16}

17exit($str);

18}else{

19if(0 ===$time) {

20header("Location: ".$url);

21}else{

22header("Content-type: text/html; charset=utf-8");

23header("refresh:{$time};url={$url}");

24echo($msg);

25}

26exit();

27}28}

以上就介绍了php重定向网页,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值