• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php重定向网页

php 搞代码 3年前 (2022-01-23) 25次浏览 已收录 0个评论

利用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<?php
2// 如果报头未发送,则发送一个
3if(!headers_sent()) {
4 header("Location: http://www.w3school.com.cn/");
5 exit;
6}
7?>

例子2

使用可选的 file 和 line 参数:

01<?php
02// 传递 $file 和 $line,供日后使用
03// 不要预先为它们赋值
04if(!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 */
07functionredirect($url,$time= 0, $msg= '') {
08 $url= str_replace(array("\n","\r"), '',$url); // 多行URL地址支持
09 if(empty($msg)) {
10 $msg= "系统将在 {$time}秒 之后自动跳转到 {$url} !";
11 }

¥本文来源gaodai#ma#com搞@@代~&码网^搞gaodaima代码

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教程有兴趣的朋友有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php重定向网页

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址