PHP基础:页面(链接)跳转教程

制作网页时,页面之间的自动跳转是我们经常碰到的问题。而使用PHP进行网页的自动跳转是个非常简单的工作,下面我就将介绍如何通过PHP代码进行自动跳转,以及需要注意的地方。

在PHP中实现跳转,你需要用到header()函数。此函数将发送一个初始HTTP头信息给浏览器,此时浏览器会根据此HTTP头中的链接跳转到定义的新页面中去。我们唯一需要的注意的地方是:在使用header()函数之前,不允许存在有任何实际的输出。意思就是说,在使用这个函数前,在页面中不能使用html标签或内容,也不能使用PHP中的echo,print函数。否则跳转将会失效。

下面的例子将演示如何正确使用header()一个PHP跳转功能:

  1. <?php           
  2. header('Location:http://www.code52.net');           
  3. $f = fopen('demo.txt','w+');           
  4. fwrite($f,'Test');          
  5.  fclose($f);       
  6. ?>      

如果你运行此段代码,你的浏览器会自动转向到代码吾爱的主页。需要搞清楚的是,在使用了header()函数之后,页面中剩下的php代码也将被执行(这一点与ASP中利用Redirect转向不同,务必注意)。所以一般情况下,为了节省服务器资源,我们会使用die()函数来结束当前页面中代码的执行,如下:

  1. <?php       
  2. header('Location:http://www.code52.net');       
  3. die(); //使用die()之后,剩下的代码将不被执行   
  4. $f = fopen('demo.txt','w+');       
  5. fwrite($f,'Test');    fclose($f);   
  6. ?>  

如果你的跳转页面对象是站内的链接,你只需要将header函数参数中的URL代码部分替换成相对路径或绝对路径即可。比如可将http://www.code52.net这个URL替换成"/page/demo.html",即跳转到站点根目录下page文件夹的demo.html页面。

但诚如我们以上说过的注意事项,如果你在header()函数之前添加一行echo代码,这个跳转功能会失效。

Warning: Cannot modify header information - headers already sent by

为了防止此问题的发生,我们可以通过使用PHP输出缓存来完美解决,你可以尝试使用以下代码:

  1. <?php     
  2. ob_start();//缓存下面出现的所有实际输出      
  3. echo "Test";      
  4. header("Location: http://www.php.net");      
  5. ob_flush();//缓存结束,输出缓存   
  6. ?>   
所以,在以后你发现header()无法正常工作的时候,记得检查跳转之前是否存在实际内容输出。如果存在,则使用以上PHP输出缓存解决即可!
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值