TPフレームワークのリダイレクトメソッドはどうやってジャンプを実装しているのでしょうか? ソースコードを見ても全く分かりません。

WBOY
リリース: 2016-06-23 13:53:48
オリジナル
1144 人が閲覧しました

保護された関数 redirect($url,$params=array(),$delay=0,$msg='') {
$url = U($url,$params);
redirect($url,$lay,$); msg);
}



まず URL を保存し、次に 3 番目と 4 番目のパラメータを再帰的に渡します。 。


そのジャンプはどのように達成されるのでしょうか? ? ?


ディスカッションへの返信 (解決策)

次に、リダイレクト関数の定義を見てみましょう

関数本体のリダイレクトは関数を呼び出します:

フレームワーク
リダイレクト
説明:
void redirect($url, $time=0, $msg='')
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);        }    }
ログイン後にコピー

// 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 { //否则就发送 meta 标记,含义同上        $str = "<meta http-equiv='Refresh' content='{$time};URL={$url}'>";        if ($time != 0)            $str .= $msg;        exit($str);    }}
ログイン後にコピー

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート