php如何實現header跳轉

2020-07-16 10:05:50

php實現header跳轉的方法以及注意事項:

header()函數是PHP中進行頁面跳轉的一種十分簡單的方法。header()函數的主要功能是將HTTP協定檔頭(header)輸出到瀏覽器。

header()函數的定義如下:

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


可選引數replace指明是替換前一條類似檔頭還是新增一條相(www.php.cn)同型別的檔頭,預設為替換。

第二個可選引數http_response_code強制將HTTP相應程式碼設為指定值。 header函數中Location型別的檔頭是一種特殊的header呼叫,常用來實現頁面跳轉。注意:

1.location和「:」號間不能有空格,否則不會跳轉。
2.在用header前不能有任何的輸出。
3.header後的PHP程式碼還會被執行。例如,將瀏覽器重定向到php.cn

<?php
 //重定向瀏覽器
header("Location: https://www.php.cn");
 //確保重定向後,後續程式碼不會被執行
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.php.cn)在就跳轉到register.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);
 }
 ?>

相關推薦:TW511.COM

以上就是php如何實現header跳轉的詳細內容,更多請關注TW511.COM其它相關文章!