您好,欢迎访问一九零五行业门户网

php重定向网页

利用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
例子2
使用可选的 file 和 line 参数:
01
根据上面的知识点,我们可以整理出自己的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= ;
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教程有兴趣的朋友有所帮助。
其它类似信息

推荐信息