麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 語(yǔ)言 > PHP > 正文

PHP header() 函數(shù)使用方法總結(jié)

2024-09-04 11:48:41
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

header() 函數(shù)向客戶端發(fā)送原始的 HTTP 報(bào)頭,主要包括有HTTP協(xié)議的版本、狀態(tài)代碼、原因短語(yǔ)等我們常用于跳轉(zhuǎn)頁(yè)面,狀態(tài)發(fā)送與文件下載,下面我們一起來(lái)看看.

header分為三部分:

第一部分為HTTP協(xié)議的版本(HTTP-Version);

第二部分為狀態(tài)代碼(Status);

第三部分為原因短語(yǔ)(Reason-Phrase);

header()函數(shù)使用說(shuō)明:

一、作用:

PHP只是以HTTP協(xié)議將HTML文檔的標(biāo)頭送到瀏覽器,告訴瀏覽器具體怎么處理這個(gè)頁(yè)面,至于傳送的內(nèi)容則需要熟悉一下HTTP協(xié)議了,與PHP無(wú)關(guān)了,可參照.http://www.w3.org/Protocols/rfc2616/rfc2616.

傳統(tǒng)的標(biāo)頭一定包含下面三種標(biāo)頭之一,并只能出現(xiàn)一次.

  1. Location:  xxxx:yyyy/zzzz    
  2. Content-Type:  xxxx/yyyy    
  3. Status:  nnn  xxxxxx   

二、先來(lái)了解一下HTTP協(xié)議的運(yùn)作方式

HTTP協(xié)議是基于請(qǐng)求/響應(yīng)范式的,一個(gè)客戶機(jī)與服務(wù)器建立連接后,發(fā)送一個(gè)請(qǐng)求給服務(wù)器,請(qǐng)求方式的格式為,統(tǒng)一資源標(biāo)識(shí)符、協(xié)議版本號(hào),后邊是MIME信息包括請(qǐng)求修飾符、客戶機(jī)信息和可能的內(nèi)容,服務(wù)器接到請(qǐng)求后,給予相應(yīng)的響應(yīng)信息,其格式為一個(gè)狀態(tài)行包括信息的協(xié)議版本號(hào)、一個(gè)成功或錯(cuò)誤的代碼,后邊是MIME信息包括服務(wù)器信息、實(shí)體信息和可能的內(nèi)容.

它分四個(gè)過(guò)程,在HTTP協(xié)議中,服務(wù)端是指提供HTTP服務(wù)的部分,客戶端是指你使用的瀏覽器或者下載工具等等。在通訊時(shí),由客戶端發(fā)出請(qǐng)求連接,服務(wù)端建立連接,然后,客戶端發(fā)出HTTP請(qǐng)求(Request),服務(wù)端返回響應(yīng)信息(Respond),由此完成一個(gè)HTTP操作.

三、HTTP協(xié)議狀態(tài)碼表示的意思

1××  保留

2××  表示請(qǐng)求成功地接收

3××  為完成請(qǐng)求客戶需進(jìn)一步細(xì)化請(qǐng)求

4××  客戶錯(cuò)誤

5××  服務(wù)器錯(cuò)誤

例,代碼如下:

  1. // fix 404 pages: 用這個(gè)header指令來(lái)解決URL重寫產(chǎn)生的404 header 
  2. header(‘HTTP/1.1 200 OK’); 
  3.  
  4. // set 404 header: 頁(yè)面沒(méi)找到 
  5. header(‘HTTP/1.1 404 Not Found’); 
  6.  
  7. // 頁(yè)面被永久刪除,可以告訴seo/seo.html" target="_blank">搜索引擎更新它們的urls 
  8. // set Moved Permanently header (good for redrictions) 
  9. // use with location header 
  10. header(‘HTTP/1.1 301 Moved Permanently’); 
  11. // 訪問(wèn)受限 
  12. header(‘HTTP/1.1 403 Forbidden’); 
  13. // 服務(wù)器錯(cuò)誤 
  14. header(‘HTTP/1.1 500 Internal Server Error’); 
  15.  
  16. // 重定向到一個(gè)新的位置 
  17. // redirect to a new location: 
  18. header(‘Location: http://www.m-bang.com); 
  19.  
  20. 延遲一段時(shí)間后重定向 
  21. // redrict with delay: 
  22. header(‘Refresh: 10; url=http://www.sina.com.cn’); 
  23. print ‘You will be redirected in 10 seconds’; 
  24.  
  25. // 覆蓋 X-Powered-By value 
  26. // override X-Powered-By: PHP: 
  27. header(‘X-Powered-By: PHP/4.4.0′); 
  28. header(‘X-Powered-By: Brain/0.6b’); 
  29.  
  30. // 內(nèi)容語(yǔ)言 (en = English) 
  31. // content language (en = English) 
  32. header(‘Content-language: en’); 
  33.  
  34. //最后修改時(shí)間 (在緩存的時(shí)候可以用到) 
  35. // last modified (good for caching) 
  36. $time = time() – 60; // or filemtime($fn), etc 
  37. header(‘Last-Modified: ‘.gmdate(‘D, d M Y H:i:s’, $time).’ GMT’); 
  38.  
  39. // 告訴瀏覽器要獲取的內(nèi)容還沒(méi)有更新 
  40. // header for telling the browser that the content 
  41. // did not get changed 
  42. header(‘HTTP/1.1 304 Not Modified’); 
  43.  
  44. // 設(shè)置內(nèi)容的長(zhǎng)度 (緩存的時(shí)候可以用到): 
  45. // set content length (good for caching): 
  46. header(‘Content-Length: 1234′); 
  47.  
  48. // 用來(lái)下載文件: 
  49. // Headers for an download: 
  50. header(‘Content-Type: application/octet-stream’); 
  51. header(‘Content-Disposition: attachment; filename=”example.zip”‘); 
  52. header(‘Content-Transfer-Encoding: binary’); 
  53.  
  54. // 禁止緩存當(dāng)前文檔: 
  55. // load the file to send:readfile(‘example.zip’); 
  56. // Disable caching of the current document: 
  57. header(‘Cache-Control: no-cache, no-store, max-age=0, must-revalidate’); 
  58. header(‘Expires: Mon, 26 Jul 1997 05:00:00 GMT’); 
  59. // 設(shè)置內(nèi)容類型: 
  60. // Date in the pastheader(‘Pragma: no-cache’); 
  61. // set content type: 
  62. header(‘Content-Type: text/html; charset=iso-8859-1′); 
  63. header(‘Content-Type: text/html; charset=utf-8′); 
  64. header(‘Content-Type: text/plain’); 
  65.  
  66. // plain text file 
  67. header(‘Content-Type: image/jpeg’); 
  68.  
  69. // JPG picture 
  70. header(‘Content-Type: application/zip’); 
  71.  
  72. // ZIP file 
  73. header(‘Content-Type: application/pdf’); 
  74.  
  75. // PDF file 
  76. header(‘Content-Type: audio/mpeg’); 
  77.  
  78. // Audio MPEG (MP3,…) file 
  79. header(‘Content-Type: application/x-shockwave-flash’); 
  80. //開源代碼Vevb.com 
  81. // 顯示登錄對(duì)話框,可以用來(lái)進(jìn)行HTTP認(rèn)證 
  82. // Flash animation// show sign in box 
  83. header(‘HTTP/1.1 401 Unauthorized’); 
  84. header(‘WWW-Authenticate: Basic realm=”Top Secret”‘); 
  85. print ‘Text that will be displayed if the user hits cancel or ‘; 
  86. print ‘enters wrong login da 
  87. ta’; 

現(xiàn)在表單的填寫,我們可以用AJAX對(duì)用戶隨時(shí)進(jìn)行驗(yàn)證,進(jìn)行友好的提示,但是在用戶沒(méi)有留意AJAX友好提示,提交了錯(cuò)誤的表單,跳回原頁(yè),而填寫的信息卻全部丟失了,要支持頁(yè)面回跳,有以下的辦法:

1.使用session_cache_limiter方法:session_cache_limiter(‘private,must-revalidate’);但是要值得注意的是 session_cache_limiter()方法要寫在session_start()方法之前才有用;

2.用header來(lái)設(shè)置控制緩存的方法: header(‘Cache-control:private,must-revalidate’);

頁(yè)面跳轉(zhuǎn)要注意的幾個(gè)問(wèn)題總結(jié):

1、location和“:”號(hào)間不能有空格,否則會(huì)出錯(cuò).

2、在用header前不能有任何的輸出.

3、header后的PHP代碼還會(huì)被執(zhí)行.

下面是和asp中重定向response.redirect的比較:

例1,代碼如下:

response.redirect "../test.asp" 

header("location:../test.php"); 

兩者區(qū)別:

asp的redirect函數(shù)可以在向客戶發(fā)送頭文件后起作用,如代碼如下:

  1. <html><head></head><body>  
  2. <%response.redirect "../test.asp"%>  
  3. </body></html>  
  4. //查是php中下例代碼會(huì)報(bào)錯(cuò):  
  5. <html><head></head><body>  
  6. <?  
  7. header("location:../test.php");  
  8. ?>  
  9. </body></html>  
  10. //只能這樣:  
  11. <?  
  12. header("location:../test.php");  
  13. ?> 
  14. <html><head></head><body>...</body></html>  

即header函數(shù)之前不能向客戶發(fā)送任何數(shù)據(jù).

例2,asp中,代碼如下:

  1. <html><head></head><body>  
  2. <%  
  3. response.redirect "../a.asp"  
  4. response.redirect "../b.asp"  
  5. %>  
  6. </body></html>  
  7. //結(jié)果是重定向a.asp文件.  
  8. //php呢?  
  9. <?  
  10. header("location:../a.php");  
  11. header("location:../b.php");  
  12. ?>  
  13. <html><head></head><body></body></html>  

我們發(fā)現(xiàn)它重定向b.php.

原來(lái)在asp中執(zhí)行redirect后不會(huì)再執(zhí)行后面的代碼.而php在執(zhí)行header后,繼續(xù)執(zhí)行下面的代碼.在這方面上php中的header重定向不如asp中的重定向.有時(shí)我們要重定向后,不能執(zhí)行后面的代碼:一般地我們用如下代碼:

  1. if(...)  
  2. header("...");  
  3. else  
  4. {  
  5. ...  

但是我們可以簡(jiǎn)單的用下面的方法:

  1. if(...)  
  2. { header("...");exit();}  

還要注意的是,如果是用Unicode(UTF-8)編碼時(shí)也會(huì)出現(xiàn)問(wèn)題,需要調(diào)整緩存設(shè)置,代碼如下:

  1. <[email=%@]%@LANGUAGE="VBSCRIPT[/email]" CODEPAGE="936"%>  
  2. <%if Request.ServerVariables("SERVER_NAME")="s.111cn.net" then  
  3. response.redirect "news/index.htm"  
  4. else%>  
  5. <%end if%>  
  6. <script>  
  7. var url = location.href;  
  8. if(url.indexOf('http://www.companysz.com/')!=-1)location.href='/index/index.htm';  
  9. if(url.indexOf('http://www.zhutiy.com/')!=-1)location.href='/index1/index.htm';  
  10. if(url.indexOf('http://www.companysz.com/')!=-1)location.href='/cn/index.asp';  
  11. if(url.indexOf('http://www.baidu.com/')!=-1)location.href='/cn/index.asp';  
  12. </script>

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美日韩视频在线播放 | 黄视频网站免费观看 | 亚洲第一黄色网 | 欧美日本在线视频 | h视频免费观看 | 久久色在线 | 深夜福利视频绿巨人视频在线观看 | 国产91一区 | 小视频成人 | 久久免费精品 | 本色视频aaaaaa一级网站 | 日本在线播放一区二区三区 | 97中文字幕第一一一页 | 免费黄色大片在线观看 | 中文字幕在线播放不卡 | 一级黄色影院 | 国产一级做a爰片在线看 | 国产亚洲精品成人a | 亚州综合网 | 妇子乱av一区二区三区 | 小视频免费在线观看 | 欧产日产国产精品v | 欧美成人一级 | 亚洲草逼视频 | 亚洲啪| 免费观看黄视频 | 久久精品网 | 成人午夜在线观看视频 | 国产一级免费在线视频 | 蜜桃网在线观看 | 亚洲一区久久 | 黄色一级片在线免费观看 | av影院在线播放 | 一级α片免费看刺激高潮视频 | 国产成年人视频网站 | 亚洲成人福利网站 | 国产二区三区视频 | 天天天干夜夜夜操 | 72pao成人国产永久免费视频 | 黄色免费播放网站 | 久国产|