页面跳转可以由用户点击链接、按钮等触发,也可以由系统手动形成。WEB开发中经常使用页面手动跳转,并且根据需要可以使用不同的跳转形式,例如延迟跳转后的提示操作信息等,慢生活小编总结了PHP开发中几种常见的页面跳转方法。
首先,PHP header() 函数跳转PHP 的 header() 函数非常强大,在页面 URL 跳转
方面也叫简单php 页面跳转,使用 header() 直接跳转到指定的 URL 页面,页面跳转为 302 重定向:
$url = "http://www.dnjs.net/"; header( "Location: $url" );
我们可能会遇到特殊的重定向,比如网站改版有页面地址做 301 重定向,当然可以通过网页配置重写来实现,但是现在我想告诉你,你可以使用 PHP 的 header() 函数做 301 重定向,代码如下:
//301跳转 header( "HTTP/1.1 301 Moved Permanently" ); header( "Location: $url" );
二、元设置跳转
html中的元信息可以直接设置跳转,可以设置跳转延迟时间和跳转URL,经常应用,比如支付后告诉用户支付成功并跳转到订单页面,代码很简单,只需添加一句话:
上面的代码意味着5秒后,页面会手动跳转到舒适慢生活官网。
第三,Javascript跳跃
Javascript跳转也很简单,用一句直截了当的话来说:
window.location.href="http://www.456lives.com";
注意上面代码直接跳转后,在实际项目中,遇到客户要求跳转带路(即登陆页可以从那里得到页面跳转)时,是不可能在目标页面地址中获取方式(referer,也叫源)的,此时, 我们可以使用 JavaScript 来模拟点击,然后跳转满足客户的需求。
//有来路 var aa = document.createElement("a"); aa.setAttribute("href","http://www.dnjs.net"); var bodys=document.getElementsByTagName("body")[0]; bodys.appendChild(aa); aa.click();
当然,在实际开发中php 页面跳转,我们可以将前两种方法集成到 PHP 中,方便应用于各种跳转需求。
注意:
1.位置和“:”之间不能有空格,否则不会跳转。
2. 使用标头之前不得有任何输出。
3.PHP标头后的代码将被执行。例如,将浏览器重定向到 mano100.cn
<?php
//重定向浏览器
header("Location: https://www.mano100.cn");
//确保重定向后,后续代码不会被执行
exit;
1.PHP跳码单句风格
<?php
$url = $_GET['url'];
Header("Location:$url");
?>
2.PHP跳代码如果判断:
代码如下:
if($_COOKIE["u_type"]){
header('location:register.php');
} else{
setcookie('u_type','1','86400*360');//设置cookie长期有效
}
header('location:zc.html');
注意:另存为 zc.phpphp页面跳转,当用户访问 zc .php时,确定是否存在 cookie,如果
它存在 () 跳转到注册 .php,如果不存在,请创建一个 cookie 并从以下位置跳转到 zc.html:
网址重定向功能
// URL重定向
function redirect($url, $time=0, $msg=”) {
//多行URL地址支持
$url = str_replace(array(“n”, “r”), ”, $url);
if ( empty($msg) )
$msg = “系统将在{$time}秒之后自动跳转到{$url}!”;
if (!headers_sent()) {
// redirect
if (0 === $time) {
header(‘Location: ‘ . $url);
} else {
header(“refresh:{$time};url={$url}”);
echo($msg);
}
exit();
} else {
$str = “<meta http-equiv='Refresh' content='{$time};URL={$url}'>”;
if ($time != 0)
$str .= $msg;
exit($str);
}
}
以上无法返回404状态,
如果是页面跳转并返回 404 状态码,我们可以执行以下操作
function getref()
{
$url = @$_SERVER['HTTP_REFERER'];
if( !empty( $url ) )
{
if( !strstr($url ,'jb51.net' ) && !strstr($url,'jb51.net'))
{
@header("http/1.1 404 not found");
@header("status: 404 not found");
include("404.html");//跳转到某一个页面,推荐使用这种方法
exit();
}
}
else
{
@header("http/1.1 404 not found");
@header("status: 404 not found");
include("404.html");//跳转到某一个页面,推荐使用这种方法
exit();
}
}
如果你想做301,差不多
<?php
$the_host = $_SERVER['HTTP_HOST'];
$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
if($the_host !== 'www.jb51.net')
{
//echo $_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
header('HTTP/1.1 301 Moved Permanently');
header('Location: https://www.jb51.net' . $_SERVER['PHP_SELF'] . $request_uri);
}
原文链接:
这就是这一分钟的全部内容,我希望你们程序员能够努力提高你的个人技能。最后,小编温馨提示:每天读5分钟,每天学一点php页面跳转,每天进步一点。
竖起大拇指
我们再去一次
发表评论