void header ( string $string [, bool $replace = true [, int $http_response_code ]] )
#功能:傳送一個自訂的http封包。
請注意一點,header()必須在任何實際輸出之前調用,不管是普通的html標籤,還是檔案裡面的空行,空格或者是PHP檔案裡的空行,空格。這是一個非常普遍的錯誤,在透過include,require,或者其存取其他檔案裡面的函數時,如果在header()被呼叫之前,其中有空格或空白行。如果不是呼叫其他文件,只是單獨使用一個PHP或HTML文件,在header()被呼叫之前有輸出也會出錯。
參數說明:
#string 封包字串
replace 如果為true,表示後面一個相同類型的封包資訊來取代前面一個相似的封包資訊。預設為true,如果設為false,可以強制使相同的封包資訊並存。
http_response_code 強制指定HTTP回應的值。請注意,這個參數只有在封包字串(string)不為空的情況下才有效。
範例:將重定性302強制指定為303
<?php header('location:http://www.example.com/', true, 303); ?>
bool headers_sent ([ string &$file [, int &$line ]] )
功能:檢查HTTP 標頭是否已被傳送以及在哪裡被傳送。
參數說明:
#file 若設定此參數,則會執行了header輸出的php來源檔案名稱存入file變數中
line 如果設定此參數,就會將執行了header輸出的php來源檔案的程式碼行號存入line變數中
範例:
#例子: <?php header('content-type:text/html;charset=utf-8'); echo 'fdipzone<br>'; ob_end_flush(); if(headers_sent($file, $line)){ echo "header send in $file on line $line"; }else{ echo 'not header response'; } ?>
上例輸出:header send in /home/fdipzone/demo .php on line 5
array headers_list ( void )
功能:列出所有的header輸出(或準備輸出),傳回為陣列
範例:輸出header list
<?php header('content-type:text/html;charset=utf-8'); header('access-control-allow-origin:*'); $headers_list = headers_list(); print_r($headers_list); ?>
輸出:
Array ( [0] => X-Powered-By: PHP/5.4.3 [1] => content-type:text/html;charset=utf-8 [2] => access-control-allow-origin:* )
void header_remove ([ string $name ] )
#功能:移除某個header輸出
參數說明:
##name 要移除的header name
範例:判斷是否有access-control-allow-origin:*,如果有則移除
<?php header('content-type:text/html;charset=utf-8'); header('access-control-allow-origin:*'); if(in_array('access-control-allow-origin:*', headers_list())){ header_remove('access-control-allow-origin'); } print_r(headers_list()); ?>
透過PDO 查詢mysql傳回欄位整數變成String型的解決方法
以上是關於header,headers_sent,headers_list,header_remove 使用說明的詳細內容。更多資訊請關注PHP中文網其他相關文章!