您的位置:首页 > 编程语言 > PHP开发

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

2009-07-13 17:36 281 查看
制作网页时,页面之间的自动跳转是我们经常碰到的问题。而使用PHP进行网页的自动跳转是个非常简单的工作,下面我就将介绍如何通过PHP代码进行自动跳转,以及需要注意的地方。
在PHP中实现跳转,你需要用到header()函数。此函数将发送一个初始HTTP头信息给浏览器,此时浏览器会根据此HTTP头中的链接跳转到定义的新页面中去。我们唯一需要的注意的地方是:在使用header()函数之前,不允许存在有任何实际的输出。意思就是说,在使用这个函数前,在页面中不能使用html标签或内容,也不能使用PHP中的echo,print函数。否则跳转将会失效。

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

<?php

header('Location:http://www.code52.net');

$f = fopen('demo.txt','w+');

fwrite($f,'Test');

fclose($f);

?>

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

<?php

header('Location:http://www.code52.net');

die(); //使用die()之后,剩下的代码将不被执行

$f = fopen('demo.txt','w+');

fwrite($f,'Test'); fclose($f);

?>

如果你的跳转页面对象是站内的链接,你只需要将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输出缓存来完美解决,你可以尝试使用以下代码:

<?php

ob_start();//缓存下面出现的所有实际输出

echo "Test";

header("Location: http://www.php.net");
ob_flush();//缓存结束,输出缓存

?>

所以,在以后你发现header()无法正常工作的时候,记得检查跳转之前是否存在实际内容输出。如果存在,则使用以上PHP输出缓存解决即可!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: