php跳转页面代码

在PHP中,你可以使用header函数来实现页面跳转。

php
<?php // 重定向浏览器 header("Location: http://www.example.com/new_page.php"); // 确保重定向后,后续代码不会被执行 exit; ?>

在这个例子中,header("Location: http://www.example.com/new_page.php"); 将浏览器重定向到指定的URL,然后 exit; 确保在重定向后不再执行后续的PHP代码。

header函数必须在向浏览器发送任何实际输出之前调用,否则可能会导致错误。如果在调用header之前有输出,PHP会发出一个警告,并且重定向可能不起作用。

如果你的页面已经输出了内容,你可以考虑使用JavaScript进行客户端重定向:

php
<?php echo "<script>window.location.href='http://www.example.com/new_page.php';</script>"; ?>

这种方式不依赖于服务器端的header,但要注意,这只适用于启用了JavaScript的浏览器。

当使用header函数进行页面跳转时,还需要注意

确保没有输出: header函数必须在任何实际输出之前调用。如果在调用header之前有输出,PHP会发出一个警告,并且重定向可能会失败。

使用绝对URL:header("Location: ..."); 中,最好使用绝对URL而不是相对URL,以确保在各种情况下都能正常工作。

调用exit 在调用header后,建议使用 exitdie 来确保在重定向之后不再执行脚本的其余部分。

开启缓冲区: 如果你在输出之前调用了header函数并且遇到了输出之前不能调用header的问题,你可以尝试使用输出缓冲区。通过 ob_start 函数启动缓冲区,可以推迟脚本的实际输出。

php
<?php // 开启输出缓冲区 ob_start(); // 进行重定向 header("Location: http://www.example.com/new_page.php"); // 关闭输出缓冲区并输出内容 ob_end_flush(); // 确保在重定向后不再执行后续代码 exit; ?>

上述代码中的 ob_end_flush() 会将输出缓冲区中的内容输出到浏览器。在这种情况下,exit 语句确保在重定向后不再执行后续代码。

标签