首頁 >後端開發 >php教程 >php重定向網頁

php重定向網頁

WBOY
WBOY原創
2016-07-30 13:30:381439瀏覽

利用PHP的header()函數,可以實現頁面跳轉,如

1 header(1
但它有個缺點,一旦HTTP報頭區塊已經發送,就不能使用header() 函數,來發送其它的標頭。 這時候只能利用前端HTML或JS技術來實現頁面跳轉了!

怎麼知道HTTP報頭區塊已經傳送了呢?

PHP的 headers_sent() 函數,可以幫忙。

PHP headers_sent() 函數


headers_sent() 函數檢查 HTTP 標頭是否已被傳送以及在哪裡被傳送。

如果報頭已傳送,則傳回 true,否則傳回 false。

語法

headers_sent(file,line)

參數描述如果設定 file 和 line 參數,headers_sent() 會把輸出開始的 PHP 原始檔名和行號存入 file 和 line 變數中。 註釋:一旦報頭區塊已經發送,就不能使用 header() 函數 來發送其它的標頭。使用此函數至少可以避免與 HTTP 標頭相關的錯誤訊息。 註解:可選的 file 和 line 參數是 PHP 4.3 中新增的。
提示和註釋
例子1


1

<?php // 如果報頭未發送,則發送一個
<?php

if
3
(!

4

    header( "Location : http://www.w3school.com.cn/");

}
6

範例2使用可選的file 和line 參數:

01
<?php // 傳遞$file 和$line,日後使用

03 // 不要預先為它們賦值
if

(!headers_sent(

$file

,

$line)) {
05 w3school.com.cn/"

);06

   07    // Trigger an error here

    
08} 09
echo

"Headers sent in $file on line $line";
10

11 }

12

01
?> P跳轉函數:
/**

03

:秒)
 * @param string $url 跳轉位址

05
 * @param string $msg 提示語

06  */
*/

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

    (
$url= str_replace(array("n", "r"), '', $url); // 多行URL位址支援
empty

(

$msg
)) { 10 "系統將在{$time}秒之後自動跳到{$url} ! ";

11 (headers_sent() ) {
12    if

;
13   'Refresh' c/code>

14()
        if

;
15             $strstr       $strstr .= <code>$msg

  17
     

(

$str
); se{

$time
19         if(0 ===
) 20

            
header("Location: " . $url);
 else

{            header(
22
"Content-type: text/html; charset=utf-8"

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

echo() ;    
$msg 25

2627
         exit();

    

}
} 以上就介紹了php重定向網頁,包括了方面的內容,希望對PHP教程有興趣的朋友有幫助。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn