欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php header 詳細(xì)使用說明與使用心得第2/2頁

 更新時間:2009年11月12日 20:42:09   作者:  
下面是關(guān)于header函數(shù)的詳細(xì)使用說明

header -- 發(fā)送一個原始 HTTP 標(biāo)頭說明
  void header ( string string [, bool replace [, int http_response_code]] )
  
  header() 函數(shù)用來發(fā)送一個原始 HTTP 標(biāo)頭。有關(guān) HTTP 標(biāo)頭的更多內(nèi)容見 HTTP/1.1 規(guī)范。
  可選參數(shù) replace 指明是替換掉前一條類似的標(biāo)頭還是增加一條相同類型的標(biāo)頭。默認(rèn)為替換,但如果將其設(shè)為 FALSE 則可以強制發(fā)送多個同類標(biāo)頭。例如:
  
  <?php
  header('WWW-Authenticate: Negotiate');
  header('WWW-Authenticate: NTLM', false);
  ?>
  
  第二個可選參數(shù) http_response_code 強制將 HTTP 響應(yīng)代碼設(shè)為指定值(此參數(shù)是 PHP 4.3.0 新加的)。
  有兩種特殊的 header 調(diào)用。第一種是標(biāo)頭以字符串“HTTP/”(大小寫不重要)開頭的,可以用來確定要發(fā)送的 HTTP 狀態(tài)碼。例如,如果配置了 Apache 用 PHP 來處理找不到文件的錯誤處理請求(使用 ErrorDocument 指令),需要確保腳本產(chǎn)生了正確的狀態(tài)碼。
  
  <?php
  header("HTTP/1.0 404 Not Found")
  ?>
  注: HTTP 狀態(tài)碼標(biāo)頭行總是第一個被發(fā)送到客戶端,而并不管實際的 header() 調(diào)用是否是第一個。除非 HTTP 標(biāo)頭已經(jīng)發(fā)送出去,任何時候都可以通過用新的狀態(tài)行調(diào)用 header() 函數(shù)來覆蓋原先的。
  
  第二種特殊情況是以“Location:”標(biāo)頭。它不只是把這個標(biāo)頭發(fā)送回瀏覽器,它還將一個 REDIRECT(302)狀態(tài)碼返回給瀏覽器,除非之前已經(jīng)發(fā)出了某個 3xx 狀態(tài)碼。
  <?php
  header("Location: http://www.example.com/"); /* 重定向瀏覽器 */
  /* 確保重定向后,后續(xù)代碼不會被執(zhí)行 */
  exit;
  ?>
  注: HTTP/1.1 標(biāo)準(zhǔn)需要一個絕對地址的 URI 做為 Location: 的參數(shù), 但有一些客戶端支持相對 URI。通??梢允褂?$_SERVER['HTTP_HOST']、$_SERVER['PHP_SELF'] 及 dirname() 函數(shù)來自己從相對 URI 產(chǎn)生出絕對 URI:
  
  <?php
  header("Location: http://".$_SERVER['HTTP_HOST']
  . rtrim(dirname($_SERVER['PHP_SELF']), '/\\')
  ."/".$relative_url);
  ?>
  
  注: 即使啟用了 session.use_trans_sid,Session ID 也不會隨著 Location 頭信息被傳遞。必須手工用 SID 常量來傳遞。
  
  PHP 腳本通常會產(chǎn)生一些動態(tài)內(nèi)容,這些內(nèi)容必須不被瀏覽器或代理服務(wù)器緩存。很多代理服務(wù)器和瀏覽器都可以被下面的方法禁止緩存:
  
  <?php
  header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
  header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // 過去的時間
  ?>
  
  注: 可能會發(fā)現(xiàn)即使不輸出上面所有的代碼,網(wǎng)頁也沒有被緩沖。用戶有很多選項可以設(shè)置來改變?yōu)g覽器的默認(rèn)緩存行為。通過發(fā)送上述標(biāo)頭,應(yīng)該可以覆蓋任何可以導(dǎo)致腳本頁面被緩存的設(shè)置。
  
  另外,當(dāng)使用了 session 時,利用 session_cache_limiter() 函數(shù)和 session.cache_limiter 選項可以用來自動產(chǎn)生正確的緩存相關(guān)標(biāo)頭。
  
  要記住 header() 必須在任何實際輸出之前調(diào)用,不論是來自普通的 HTML 標(biāo)記,空行或者 PHP。有一個常見錯誤就是在通過 include(),require() 或一些其它的文件存取類函數(shù)讀取代碼時,有一些空格或者空行在調(diào)用 header() 之前被發(fā)送了出去。同樣在一個單獨的 PHP/HTML 文件中這個錯誤也很普遍。
  
  <html>
  <?php
  /* 這將產(chǎn)生一個錯誤,因為在調(diào) header()
  * 之前已經(jīng)輸出了東西 */
  header('Location: http://www.example.com/');
  ?>
  
  注: 自 PHP 4 起,可以通過一些輸出緩沖函數(shù)來解決這個問題。代價是把所有向瀏覽器的輸出都緩存在服務(wù)器,直到下命令發(fā)送它們??梢栽诖a中使用 ob_start() 及 ob_end_flush() 來實現(xiàn)這樣的功能,或者通過修改 php.ini 中的 output_buffering 配置選項來實現(xiàn),也可以通過修改服務(wù)器配置文件來實現(xiàn)。

相關(guān)文章

  • php數(shù)組函數(shù)序列之a(chǎn)rray_search()- 按元素值返回鍵名

    php數(shù)組函數(shù)序列之a(chǎn)rray_search()- 按元素值返回鍵名

    array_search() 函數(shù)與 in_array() 一樣,在數(shù)組中查找一個鍵值。如果找到了該值,匹配元素的鍵名會被返回。如果沒找到,則返回 false
    2011-11-11
  • php中日期加減法運算實現(xiàn)代碼

    php中日期加減法運算實現(xiàn)代碼

    通過對某個日期增加或減去幾天,得到另外一個日期
    2011-12-12
  • PHP 寫文本日志實現(xiàn)代碼

    PHP 寫文本日志實現(xiàn)代碼

    PHP 寫文本日志實現(xiàn)代碼,需要的朋友可以參考下。
    2010-05-05
  • php簡單提示框alert封裝函數(shù)

    php簡單提示框alert封裝函數(shù)

    php自定義函數(shù)之簡單提示框alert,方便輸出提示信息。
    2010-08-08
  • PHP腳本中include文件出錯解決方法

    PHP腳本中include文件出錯解決方法

    經(jīng)常當(dāng)php頁面中利用include, require, require_once包含了一些其他位置的頁面時,會出現(xiàn)錯誤,比如沒有發(fā)現(xiàn)次頁面,或者權(quán)限不允許等,可以根據(jù)以下方法來排除
    2008-11-11
  • 淺談php自定義錯誤日志

    淺談php自定義錯誤日志

    本文主要給我們介紹了開啟記錄日志的原因和方法,都是個人的經(jīng)驗之談,希望對大家能有所幫助。
    2015-02-02
  • php多進(jìn)程模擬并發(fā)事務(wù)產(chǎn)生的問題小結(jié)

    php多進(jìn)程模擬并發(fā)事務(wù)產(chǎn)生的問題小結(jié)

    這篇文章主要給大家介紹了關(guān)于php多進(jìn)程模擬并發(fā)事務(wù)產(chǎn)生的問題,文中通過示例代碼介紹的非常想吃詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • php文件夾的創(chuàng)建與刪除方法

    php文件夾的創(chuàng)建與刪除方法

    這篇文章主要介紹了php文件夾的創(chuàng)建與刪除方法,實例分析了php創(chuàng)建與刪除文件夾的技巧,需要的朋友可以參考下
    2015-01-01
  • php.ini中的php-5.2.0配置指令詳解

    php.ini中的php-5.2.0配置指令詳解

    簡介本文并非是對英文版 php.ini 的簡單翻譯,而是參考了眾多資料以后,結(jié)合自己的理解, 在原有 php.ini 基礎(chǔ)上增加了一些實用模塊的配置說明,同時對文件內(nèi)容的安排進(jìn)行了調(diào)整。 由于作者不喜歡 no-free 的玩意兒,所以刪除了除 MySQL 和 PostgreSQL 以外的其他數(shù)據(jù)庫模塊配置選項。
    2008-03-03
  • php中使用redis隊列操作實例代碼

    php中使用redis隊列操作實例代碼

    為大家介紹一個php使用redis隊列操作的例子,供初學(xué)redis的朋友參考吧
    2013-02-02

最新評論