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

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

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

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

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

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

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

如果你的跳转页面对象是站内的链接,你只需要将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. ob_start();//缓存下面出现的所有实际输出      
  2. echo "Test";      
  3. header("Location: http://www.php.net");      
  4. ob_flush();//缓存结束,输出缓存   
  5. ?>   
所以,在以后你发现header()无法正常工作的时候,记得检查跳转之前是否存在实际内容输出。如果存在,则使用以上PHP输出缓存解决即可!

你可能感兴趣的:(PHP,php,header,浏览器,redirect,.net,工作)