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代码,这个跳转功能会失效。
为了防止此问题的发生,我们可以通过使用PHP输出缓存来完美解决,你可以尝试使用以下代码:
<?php
ob_start();//缓存下面出现的所有实际输出
echo "Test";
header("Location: http://www.php.net");
ob_flush();//缓存结束,输出缓存
?>
所以,在以后你发现header()无法正常工作的时候,记得检查跳转之前是否存在实际内容输出。如果存在,则使用以上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输出缓存解决即可!
相关文章推荐
- PHP Action中跳转到别的方法、页面中点击链接跳转到ACtion中方法、AJAX提交传参给ACTION
- php页面跳转 (链接和button两种方式)
- PHP基础教程 PHP的页面缓冲处理机制
- PHP基础教程-26 链接PHP文件
- php防盗链,php ci在control里面控制除了自己站内的链接点击跳转,其他来源的都跳到站内页面
- PHP将页面中点击数量高的链接进行高亮显示的方法
- PHP跳转页面的三种方法
- php中实现页面跳转
- PHP页面跳转几种实现方法
- PHP页面跳转
- 让超链接点击后不跳转,可以用href = "#",但是这个#就会锚点到页面最上边 点击链接后不跳转可以设置成
- PHP 页面跳转实现方法
- Android基础】页面跳转与传值(Activity跳转与传值)
- PHP页面跳转
- 网站某一目录下mip页面点击全部跳转到同一个链接,可能是什么原因导致的? – SEO每天一贴
- PHP 和 MySQL 基础教程(三)
- JSP教程(六)-怎么在JSP中跳转到别一页面
- 页面跳转 访问链接重定向
- php中iconv函数使用方法,URL传中文乱码问题,html页面跳转问题
- php url重定向 页面跳转 代码