日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php实现页面强制跳转,PHP实现页面跳转的几种方法 - 米扑博客

發布時間:2023/12/18 php 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php实现页面强制跳转,PHP实现页面跳转的几种方法 - 米扑博客 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在PHP中如何從一個頁面重定向到另外一個頁面呢?

方法1:header() 跳轉

header?—?發送原生 HTTP 頭,header()?用于發送原生的?HTTP?頭。關于?HTTP?頭的更多信息請參考???HTTP/1.1 specification。

請注意header()必須在任何實際輸出之前調用,不管是普通的 HTML 標簽,還是文件或 PHP 輸出的空行,空格。這是個常見的錯誤,在通過include,require,或者其訪問其他文件里面的函數的時候,如果在header()被調用之前,其中有空格或者空行,便會報錯。同樣的問題也存在于單獨的 PHP/HTML 文件中。

格式:

header?(?string?$string?[,?bool?$replace?= true?[,?int?$http_response_code?]] ) :?void

PHP里的header()函數的作用就是向瀏覽器發出由HTTP協議規定的本來應該通過WEB服務器的控制指令,

例如,聲明返回信息的類型("Context-type: xxx/xxx")、頁面的屬性("No cache", "Expire")等等。

用HTTP頭信息重定向到另外一個頁面的方法如下:

// header("Location: https://proxy.mimvp.com");// success

$go_url = "https://proxy.mimvp.com";

header("Location: $go_url");

exit();// exit 是個語法結構,如果沒有 status 參數要傳入,可以省略圓括號, 即 exit;

?>

說明:注意 "Localtion: "的寫法,Location 緊跟著一個冒號,空格,目標網址。

上面兩種寫法都是這正確的,Location 是立即跳轉。

header 跳轉需要同時滿足以下三個條件:

1、location和“:”號間不能有空格,“:”號與url之間有一個空格。

2、在用header前不能有任何的輸出, 即沒有echo, print, printf, var_dump等。

3、header后的PHP代碼還會被執行,因此一般用 exit 或 exit() 退出。

補充:php exit 的多種寫法,詳見 php exit

// exit program normally

exit;

exit();

exit(0);

// exit with an error code

exit(1);

exit(0376); // octal

?>

方法2:meta 標簽

用 HTML 的 meta 標記,即用 meta 的 refresh 標記

I love mimvp.com, waiting 5, 4, 3, 2, 1...

說明:以上兩種 meta 方式(直接網址,賦值變量網址)都成功,在當前頁面停留5秒鐘, 然后跳轉到目標網址

一般用于提示用戶的場景,等待用戶看完提示后,定時(停留5秒鐘)跳轉到了目標網址;若設置為0秒,則立即跳轉。

方法3:js 腳本

echo "";

// $url="https://proxy.mimvp.com";

// echo "

// echo "window.location.href='$url'";

// echo "";

exit();// exit 是個語法結構,如果沒有 status 參數要傳入,可以省略圓括號, 即 exit;

?>

利用 script 實現,還有一個好處,就是可以在新窗口、新父窗口打開網頁

// 新窗體(tab)打開

echo "";

// 父窗口(window)打開

echo "";

?>

window.location.href 和 window.open() 區別

一、性質不同

1、window.location:window.location是window對象的屬性。

2、window.open():window.open是window對象的方法。

二、用途不同

1、window.location:window.location用來替換當前頁,也就是重新定位當前頁?。

2、window.open():window.open用來讓鏈接頁面在新窗口中打開。

三、打開網站不同

1、window.location:window.location只能在一個網站中打開本網站的網頁。

2、window.open():window.open可以在一個網站上打開另外的一個網站的地址?。

用window.location和window.open做鏈接的區別:

"top.location.href"是最外層的頁面跳轉

"window.location.href"、"location.href"是本頁面跳轉

"parent.location.href"是上一層頁面跳轉.

location是window對象的屬性,而所有的網頁下的對象都是屬于window作用域鏈中(這是頂級作用域),所以使用時是可以省略window。

而top是指向頂級窗口對象,parent是指向父級窗口對象。

window.location是window對象的屬性,而window.open是window對象的方法

window.location是你對當前瀏覽器窗口的URL地址對象的參考!

window.open是用來打開一個新窗口的函數!

window.open()是可以在一個網站上打開另外的一個網站的地址

而window.location()是只能在一個網站中打開本網站的網頁

window.location或window.open如何指定target?

這是一個經常遇到的問題,特別是在用frame框架的時候

解決辦法:

window.location 改為 top.location 即可在頂部鏈接到指定頁

window.open("你的網址","_top");

PHP header() 函數

header() 函數向客戶端發送原始的 HTTP 報頭。

認識到一點很重要,即必須在任何實際的輸出被發送之前調用 header() 函數(在 PHP 4 以及更高的版本中,您可以使用輸出緩存來解決此問題):

// 結果出錯, 在調用 header() 之前已存在輸出

// 請務必保證, 在調用 header() 之前沒有任何輸出, 即沒有echo, print, printf, var_dump等

header('Location: http://www.mimvp.com');

?>

header() 語法

header(string, replace, http_response_code)

參數

描述

string

必需。規定要發送的報頭字符串。

replace

可選。指示該報頭是否替換之前的報頭,或添加第二個報頭。

默認是 true(替換)。false(允許相同類型的多個報頭)。

http_response_code

可選。把 HTTP 響應代碼強制為指定的值。(PHP 4 以及更高版本可用)

注釋:從 PHP 4.4 之后,該函數防止一次發送多個報頭,這是對頭部注入攻擊的保護措施。

header()函數的第一個參數 string 有兩種特別的頭:

第一種以“HTTP/”開頭的 (case is not significant,不區分大小寫),將會被用來計算出將要發送的HTTP狀態碼。

例如,在 Apache 服務器上用 PHP 腳本來處理不存在文件的請求(使用?ErrorDocument?指令), 就會希望腳本響應了正確的狀態碼。

示例1:

header("HTTP/1.0 404 Not Found");

?>

第二種特殊情況是“Location:”的頭信息。

它不僅把報文發送給瀏覽器,而且還將返回給瀏覽器一個?REDIRECT(302)的狀態碼,除非狀態碼已經事先被設置為了201或者3xx。

header("Location: http://www.mimvp.com/"); /* Redirect browser */

/* Make sure that code below does not get executed when we redirect. */

exit;

?>

replace

可選參數?replace?表明是否用后面的頭替換前面相同類型的頭。 默認情況下會替換。如果傳入?FALSE,就可以強制使相同的頭信息并存。例如:

header('WWW-Authenticate:?Negotiate');

header('WWW-Authenticate:?NTLM',?false);

?>

http_response_code

強制指定HTTP響應的值。注意,這個參數只有在報文字符串(string)不為空的情況下才有效。

示例2:

// Date in the past

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

header("Cache-Control: no-cache");

header("Pragma: no-cache");

?>

...

...

注釋:用戶可能會設置一些選項來更改瀏覽器的默認緩存設置。

通過發送上面的報頭,您可以覆蓋任何這些設置,強制瀏覽器不進行緩存!

示例3:

提示用戶保存一個生成的 PDF 文件(Content-Disposition 報頭用于提供一個推薦的文件名,并強制瀏覽器顯示保存對話框):

header("Content-type:application/pdf");

// 文件將被稱為 downloaded.pdf

header("Content-Disposition:attachment;filename='downloaded.pdf'");

// PDF 源在 original.pdf 中

readfile("original.pdf");

?>

...

...

注釋:微軟 IE 5.5 存在一個阻止以上機制的 bug,通過升級為 Service Pack 2 或更高的版本,可以解決該 bug。

參考推薦:

總結

以上是生活随笔為你收集整理的php实现页面强制跳转,PHP实现页面跳转的几种方法 - 米扑博客的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。