• 技术文章 >后端开发 >PHP问题

    php header头怎么实现跳转

    藏色散人藏色散人2022-12-02 09:14:34原创2158

    php header实现跳转的方法:1、使用“Header("Location:$url");”语法实现跳转;2、使用if判断式实现跳转,其跳转语句如“if($_COOKIE["u_type"]){ header('location:register.php'); } else{ setcookie('u_type','1','86400*360');”。

    本教程操作环境:Windows7系统、PHP8.1版、Dell G3电脑。

    php header头怎么实现跳转?

    PHP Header用于页面跳转要注意的几个问题总结

    在PHP中用header("location:test.php")进行跳转要注意以下几点,有助于解决一些新手经常遇到的问题

    1.header()函数

    header()函数是PHP中进行页面跳转的一种十分简单的方法。header()函数的主要功能是将HTTP协议标头(header)输出到浏览器。

    header()函数的定义如下:

    void header (string string [,bool replace [,int http_response_code]])

    可选参数replace指明是替换前一条类似标头还是添加一条相(www.jb51.net)同类型的标头,默认为替换。

    第二个可选参数http_response_code强制将HTTP相应代码设为指定值。 header函数中Location类型的标头是一种特殊的header调用,常用来实现页面跳转。注意:

    1.location和“:”号间不能有空格,否则不会跳转。

    2.在用header前不能有任何的输出。

    3.header后的PHP代码还会被执行。例如,将浏览器重定向到jb51.net

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

    1、php跳转代码一句话式:

    <?php 
    $url = $_GET['url'];
    Header("Location:$url");
    ?>

    2、php跳转代码if判断式:

    代码如下:

    if($_COOKIE["u_type"]){ header('location:register.php'); } else{ setcookie('u_type','1','86400*360');//设置cookie长期有效 header('location:zc.html');

    注:保存为zc.php,当用户访问zc.php时,判断一个cookie是否存在,如果存(www.jb51.net)在就跳转到register.php,如果不存在则创建cookie然后跳转到zc.htmlfrom:https://www.jb51.net/phper/php-cy/62883.htm

    URL重定向函数

    // 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);
     }
     ?>

    推荐学习:《PHP视频教程

    以上就是php header头怎么实现跳转的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php header
    上一篇:php更新语句执行失败怎么办 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • php怎么实现五秒后跳转• php怎么实现跳转并带秒数• php怎么跳转本地页面• php怎么实现满足条件后跳转页面• 网站302和301跳转别用错哦!
    1/1

    PHP中文网