在ASP中,我们可以使用Server.Transfer来实现在服务器端重定向,PHP中虽然没有这样的函数,但是要实现类似的跳转也不难:
(注意不是用 header ,js 等方法做的客户端跳转)
function server_transfer($dest)
{
global ...; // 把希望在新页面中用到的本页变量或者自定义的全局变量列在这里
include $dest; // 运行新脚本
exit; // 退出本脚本
}
注意:
1. 如果跳转之前输出的任何数据都会在新页面中显示,除非使用 ob_start 缓冲,可以在跳转之前清空,这样就互不影响了.
2. 由于新页面在一个自定义的函数作用域内运行,所以本页面定义的变量不会影响到新页面,这点是好处也是坏处.
3. 新页面依然可以用 $_POST 等超全局变量访问到本来属于本页面的变量,编写代码是需要注意.
4. 要考虑到本页面和新页面重复包含的问题,如果两个页面都包含同一个页面,比如页眉页脚,要用 require_once.
总而言之,跳转可以做到,但是程序员要清楚都发生了什么,否则很容易得到一些奇怪的结果.