在PHP中重定向页面
要将当前页面重定向到其他位置,您可以header()通过以下方式使用该功能:
header("http://www.hashbangcode.com");
当您要将用户指向其他页面时,可以使用此功能。如果您正在编写登录脚本,则此功能将有助于向用户显示特定页面,具体取决于他们输入正确的用户信息。
要将代码与重定向(例如301)一起发送,可以使用可选参数。第二个参数是一个布尔值,该布尔值确定此标头调用是否应替换任何相似名称的标头。例如,如果您发送一个名为“Cache-Control”的标头,然后稍后再发送另一个具有相同名称的标头,则第二个参数将确定该值是被替换还是附加。如果该值为true,则先前的值将被覆盖;如果该值为false,则该值将附加到要发送的标头列表中。
第三个参数是要与标题一起发布的代码。因此,要创建301重定向,请执行以下操作。
header("http://www.hashbangcode.com",false,301);
该headers()函数的一个问题是,如果任何输出(包括其他头文件)已经发送到浏览器,它将导致错误。为了解决这个问题,您可以使用headers_sent()函数,该函数检查是否已发送任何标头。如果有,则返回true,否则返回false。因此,考虑到这一点,我们可以在两种情况下都创建一个简洁的小检查来重定向页面。如果已经发送了标头,则location.href可以使用JavaScript属性以相同的方式重定向页面。
//设置重定向网址 $url = "http://www.hashbangcode.com"; if ( headers_sent() ) { //使用JavaScript重定向(如果有) echo ""; exit(); } else { //否则使用php方式。 header("Location:".$url); exit(); }
只要用户打开了JavaScript,它就可以工作,否则,您可能只需要向他们提供一个链接即可继续前进。