php重定向网页

WBOY
Lepaskan: 2016-07-30 13:30:38
asal
1441 orang telah melayarinya

利用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 可选。
如果设置 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 functionredirect($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" c> <code>;

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 }

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

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan