Php header()函数语法及使用代码
Php header()函数语法及使用代码详解,这里列出了header的常用常用状态码。
语法:
复制代码 代码如下:
Void header(string $string[,bool $replace=true [, int $http_response_code)
向客户端发送原始的HTTP报头
需注意:
Header函数必须在任何实际的输出前调用,无论是一般的html标签、文件中空行,或者来自php。就是在这个函数之前不能有任何形式的输出。
参数说明:
参数 描述
string 必需。规定要发送的报头字符串。
replace 可选。指示该报头是否替换之前的报头,或添加第二个报头。
默认是 true(替换)。false(允许相同类型的多个报头)。
http_response_code 可选。把 HTTP 响应代码强制为指定的值。(PHP 4 以及更高版本可用)
常见用法实例:
一、发送服务器状态码
复制代码 代码如下:
header('HTTP/1.0 404 Not Found');
常用状态码:
状态码 说明
100-199 表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程
200-299 成功接收请求,并已完成整个处理过程,常用200
300-399 未完成请求,客户端需要进一步细化请求,比如,请求的资源已经移动到一个新的地址,常用302,304
400-499 客户端请求有误 常用404
500-599 服务器端出现错误,常用500
详细见:HTTP&FTP相应提示信息
二、页面跳转
复制代码 代码如下:
// 立即跳转
header('Location: ');
// 3秒后跳转
header('refresh:3;url=http://www.jb51.net');
3.设置浏览器缓存
强制浏览器不进行缓存!
[code]
//header('Expires:-1');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Cache-Control:no-cache,must-revalidate');
header('pragma:no-cache');
header('Last-Modified: '. date('D, j M Y H:i:s T') );
说明:
Expires后的时间必须是GMT格式的 如:gmdate(“M d Y H:i:s”);
Cache-control常见的取值有private、no-cache、max-age、must-revalidate等,默认为private。其作用根据不同的重新浏览方式分为以下几种情况。
Cache-directive 说明
public 所有内容都将被缓存
private 内容只缓存到私有缓存中
no-cache 所有内容都不会被缓存
no-store 所有内容都不会被缓存到缓存或 Internet 临时文件中
must-revalidation/proxy-revalidation 如果缓存的内容失效,请求必须发送到服务器/代理以进行重新验证
max-age=xxx (xxx is numeric) 缓存的内容将在 xxx 秒后失效, 这个选项只在HTTP 1.1可用, 并如果和Last-Modified一起使用时, 优先级较高
打开新窗口
如果指定cache-control的值为private、no-cache、must-revalidate,那么打开新窗口访问时都会重新访问服务器。而如果指定了max-age值,那么在此值内的时间就不会重新访问服务器,如:
复制代码 代码如下:
header('cache-control:max-age=5');
表示当访问此网页后的5秒内不会再次访问服务器
在地址栏回车
如果值为private或Must-revalidate,则只有第一次访问时会访问服务器,以后就不在访问。如果值为no-cache,那么每次都会访问。如果值为max-age,则在过期之前不会重复访问。
按后退按钮
如果值为private、must-revalidate、max-age,则不会重访问,而如果为no-cache,,则每次都重复访问
按刷新按钮
无论何值,都会重复访问。当指定Cache-control值为“no-cache”时,访问此页面不会在Internet临时文章夹留下页面备份。另外,通过指定“Expires”值也会影响到缓存。例如,指定Expires值为一个早已过去的时间,那么访问此网时若重复在地址栏按回车,那么每次都会重复访问:
Expires: Fri, 31 Dec 1999 16:00:00 GMT
关于”Last-Modified
在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属性标记此文件在服务期端最后被修改的时间,格式类似这样:
Last-Modified: Fri, 12 May 2006 18:53:33 GMT
客户端第二次请求此URL时,根据 HTTP 协议的规定,浏览器会向服务器传送 If-Modified-Since 报头,询问该时间之后文件是否有被修改过:
If-Modified-Since: Fri, 12 May 2006 18:53:33 GMT
如果服务器端的资源没有变化,则自动返回 HTTP 304 (Not Changed.)状态码,内容为空,这样就节省了传输数据量。当服务器端代码发生改变或者重启服务器时,则重新发出资源,返回和第一次请求时类似。从而保证不向客户端重复发出资源,也保证当服务器有变化时,客户端能够得到最新的资源。
Last-Modified提高性能
聪明的开发者会把Last-Modified 和ETags请求的http报头一起使用,这样可利用客户端(例如浏览器)的缓存。因为服务器首先产生 Last-Modified/Etag标记,服务器可在稍后使用它来判断页面是否已经被修改。本质上,客户端通过将该记号传回服务器要求服务器验证其(客户端)缓存。
过程如下:
客户端请求一个页面(A)
服务器返回页面A,并在给A加上一个Last-Modified
客户端展现该页面,并将页面连同Last-Modified一起缓存
客户再次请求页面A,并将上次请求时服务器返回的Last-Modified一起传递给服务器
服务器检查该Last-Modified,并判断出该页面自上次客户端请求之后还未被修改,直接返回响应304和一个空的响应体。
三、文件下载
比如下载一个pdf文件
复制代码 代码如下:
// We'll be outputting a PDF
header('Content-type: application/pdf');
// It will be called downloaded.pdf
//表明他是附件,进行命名并下载
header('Content-Disposition: attachment; filename="downloaded.pdf"');
// The PDF source is in 1.pdf
readfile('1.pdf');
其实这样要更好的了解这些!
复制代码 代码如下:
header('content-type:application/octet-sream');
Header('Accept-Ranges:bytes');
//依字节返回
Header('content-disposition:attachement;filename="文件名"');
Header('Accept-length:'.$filesize);

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

MetaMask(中文也叫小狐狸錢包)是一款免費的、廣受好評的加密錢包軟體。目前,BTCC已支援綁定MetaMask錢包,綁定後可使用MetaMask錢包進行快速登錄,儲值、買幣等,且首次綁定還可獲得20USDT體驗金。在BTCCMetaMask錢包教學中,我們將詳細介紹如何註冊和使用MetaMask,以及如何在BTCC綁定並使用小狐狸錢包。 MetaMask錢包是什麼? MetaMask小狐狸錢包擁有超過3,000萬用戶,是當今最受歡迎的加密貨幣錢包之一。它可免費使用,可作為擴充功能安裝在網絡

Go語言提供了兩種動態函數創建技術:closures和反射。 closures允許存取閉包作用域內的變量,而反射可使用FuncOf函數建立新函數。這些技術在自訂HTTP路由器、實現高度可自訂的系統和建置可插拔的元件方面非常有用。

在C++函數命名中,考慮參數順序至關重要,可提高可讀性、減少錯誤並促進重構。常見的參數順序約定包括:動作-物件、物件-動作、語意意義和遵循標準函式庫。最佳順序取決於函數目的、參數類型、潛在混淆和語言慣例。

1. SUM函數,用於對一列或一組單元格中的數字進行求和,例如:=SUM(A1:J10)。 2、AVERAGE函數,用於計算一列或一組儲存格中的數字的平均值,例如:=AVERAGE(A1:A10)。 3.COUNT函數,用於計算一列或一組單元格中的數字或文字的數量,例如:=COUNT(A1:A10)4、IF函數,用於根據指定的條件進行邏輯判斷,並返回相應的結果。

C++函數中預設參數的優點包括簡化呼叫、增強可讀性、避免錯誤。缺點是限制靈活性、命名限制。可變參數的優點包括無限彈性、動態綁定。缺點包括複雜性更高、隱式型別轉換、除錯困難。

自2023年3月14日開始,ChatGLM-6B以來,GLM系列模型受到了廣泛的關注與認可。特別是在ChatGLM3-6B開源之後,開發者對智譜AI推出的第四代模型充滿了期待。而這項期待,隨著GLM-4-9B的發布,終於得到了充分的滿足。 GLM-4-9B的誕生為了賦予小模型(10B及以下)更加強大的能力,GLM技術團隊經過近半年的探索,推出了這款全新的第四代GLM系列開源模型:GLM-4-9B。這一模型在確保精度的同時,大幅度壓縮了模型大小,具有更快的推理速度和更高的效率。 GLM技術團隊的探索沒

自訂PHP函數與預定義函數的差異在於:作用域:自訂函數僅限於其定義範圍,而預定義函數可在整個腳本中存取。定義方式:自訂函數使用function關鍵字定義,而預先定義函數則由PHP核心定義。參數傳遞:自訂函數接收參數,而預先定義函數可能不需要參數。擴充性:自訂函數可以根據需要創建,而預定義函數是內建的且無法修改。
