ThinkPHP中重定向(redirect方法)

redirect 重定向的通用语法为:redirect(url,params=array(),delay=0,msg=)

用法:

protected function redirect($url,$params=array(),$delay=0,$msg=){

    $url = U($url,$params);

    redirect($url,$delay,$msg);

}

源码:参见框架内置的functions.php文件

function redirect($url,$time=0,$msg=){

    //多行URL地址支持

    $url=str_replace(array("
","
"),,$url);

    if(empty($msg)) $msg="系统将在{$time}秒之后自动跳转到{$url}!";

    if(!headers_sent()){

        //redirect

        if($time == 0){

            header(Location:.$url);

        }else{

            header("refresh:{$time};url={$url}");

            echo($msg);

        }

        exit();

    }else{

        $str="<metahttp-equiv=Refreshcontent={$time};URL={$url}>";

        if($time != 0) $str.=$msg;

        exit($str);

    }

}

// URL重定向

function redirect($url,$time=0,$msg=){

    //多行URL地址支持

    $url=str_replace(array("
","
"),,$url);

    if(empty($msg)) $msg="系统将在{$time}秒之后自动跳转到{$url}!";

    if(!headers_sent()){ //如果标头没有发出

        //redirect

        if($time == 0){

            header(Location:.$url);//如果没有指定延时时间,则发一个跳转标头

        }else{

            header("refresh:{$time};url={$url}");//如果制定了延时时间,则发一个延时刷新的标头

            echo($msg);

        }

        exit();

    }else{ //否则就发送meta标记,含义同上

        $str="<metahttp-equiv=Refreshcontent={$time};URL={$url}>";

        if($time != 0) $str.=$msg;

        exit($str);

    }

}
function redirect($url,$time=0,$msg=){

    //多行URL地址支持

    $url=str_replace(array("
","
"),,$url);

    if(empty($msg)) $msg="系统将在{$time}秒之后自动跳转到{$url}!";

    if(!headers_sent()){

        //redirect

        if($time == 0){

            header(Location:.$url);

        }else{

            header("refresh:{$time};url={$url}");

            echo($msg);

        }

        exit();

    }else{

        $str="<metahttp-equiv=Refreshcontent={$time};URL={$url}>";

        if($time != 0) $str.=$msg;

        exit($str);

    }

}
经验分享 程序员 微信小程序 职场和发展