PHP常用 header函数设置HTTP头部示例

本文详细介绍了PHP中header函数的应用,包括设置HTTP响应头、内容类型、重定向、刷新及禁用缓存等常见操作,是PHP开发者必备的参考资料。

PHP常用 header函数设置HTTP头部示例

定义编码
header( 'Content-Type:text/html;charset=utf-8 ');

Atom
header(‘Content-type: application/atom+xml’);

CSS
header(‘Content-type: text/css’);

Javascript
header(‘Content-type: text/javascript’);

JPEG Image
header(‘Content-type: image/jpeg’);

JSON
header(‘Content-type: application/json’);

PDF
header(‘Content-type: application/pdf’);

RSS
header(‘Content-Type: application/rss+xml; charset=ISO-8859-1’);

Text (Plain)
header(‘Content-type: text/plain’);

XML
header(‘Content-type: text/xml’);

OK
header(‘HTTP/1.1 200 OK’);

设置一个404头
header(‘HTTP/1.1 404 Not Found’);

设置地址被永久的重定向
header(‘HTTP/1.1 301 Moved Permanently’);

转到一个新地址
header(‘Location: http://www.example.org/’);

文件延迟转向
header(‘Refresh: 10; url=http://www.example.org/’);
print ‘You will be redirected in 10 seconds’;

当然,也可以使用html语法实现

override X-Powered-By: PHP:
header(‘X-Powered-By: PHP/4.4.0’);
header(‘X-Powered-By: Brain/0.6b’);

文档语言
header(‘Content-language: en’);

告诉浏览器最后一次修改时间
time=time()−60;//orfilemtime(time = time() - 60; // or filemtime(time=time()60;//orfilemtime(fn), etc
header(‘Last-Modified: ‘.gmdate(‘D, d M Y H:i:s’, $time).’ GMT’);

告诉浏览器文档内容没有发生改变
header(‘HTTP/1.1 304 Not Modified’);

设置内容长度
header(‘Content-Length: 1234’);

设置为一个下载类型
header(‘Content-Type: application/octet-stream’);
header(‘Content-Disposition: attachment; filename=“example.zip”’);
header(‘Content-Transfer-Encoding: binary’);
// load the file to send:
readfile(‘example.zip’);

对当前文档禁用缓存
header(‘Cache-Control: no-cache, no-store, max-age=0, must-revalidate’);
header(‘Expires: Mon, 26 Jul 1997 05:00:00 GMT’); // Date in the past
header(‘Pragma: no-cache’);

设置内容类型
header(‘Content-Type: text/html; charset=iso-8859-1’);
header(‘Content-Type: text/html; charset=utf-8’);
header(‘Content-Type: text/plain’); //纯文本格式
header(‘Content-Type: image/jpeg’); //JPG***
header(‘Content-Type: application/zip’); // ZIP文件
header(‘Content-Type: application/pdf’); // PDF文件
header(‘Content-Type: audio/mpeg’); // 音频文件
header(‘Content-Type: application/x-shockw**e-flash’); //Flash动画

显示登陆对话框
header(‘HTTP/1.1 401 Unauthorized’);
header(‘WWW-Authenticate: Basic realm=“Top Secret”’);
print 'Text that will be displayed if the user hits cancel or ';
print ‘enters wrong login data’;

### 如何在 PHP设置 Curl 的 Header 部分 在 PHP 中,可以通过 `CURLOPT_HTTPHEADER` 参数来设置自定义的 HTTP 请求。此选项接受一个字符串数组作为输入,其中每个元素表示一个单独的 HTTP 头部字段[^1]。 以下是详细的实现方法以及代码示例: #### 使用 `CURLOPT_HTTPHEADER` 设置自定义头部 当使用 cURL 发送请求时,可以通过传递一个包含键值对形式的字符串数组给 `CURLOPT_HTTPHEADER` 来指定自定义头部。这些头部会附加到请求中发送至目标服务器[^2]。 下面是一个完整的函数示例,展示了如何设置自定义头部并执行 POST 请求: ```php function sendCustomRequest($url, $headers, $postData) { // 初始化 cURL 会话 $ch = curl_init(); // 设置返回数据而不是直接输出 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 设置目标 URL curl_setopt($ch, CURLOPT_URL, $url); // 设置自定义头部 curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // 启用 POST 请求模式 curl_setopt($ch, CURLOPT_POST, true); // 设置要提交的数据 curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData)); // 执行请求并获取响应 $response = curl_exec($ch); // 检查是否有错误发生 if ($error = curl_error($ch)) { echo "cURL Error: " . $error; } // 关闭 cURL 资源 curl_close($ch); return $response; } // 定义目标 URL 和自定义头部 $url = 'https://example.com/api'; $headers = [ 'Content-Type: application/json', 'Authorization: Bearer your_token_here', 'User-Agent: CustomAgent/1.0' ]; // 定义要发送的 POST 数据 $postData = [ 'key' => 'value', 'another_key' => 'another_value' ]; // 调用函数发起请求 $response = sendCustomRequest($url, $headers, $postData); echo $response; ``` 在这个例子中: - `$headers` 数组包含了多个自定义头部字段,例如 `Content-Type`, `Authorization` 和 `User-Agent`。 - 函数中的 `http_build_query()` 将关联数组转换成查询字符串以便于通过 POST 提交[^1]。 如果需要覆盖默认的头部(如 HOST 字段),也可以按照相同的方式将其加入 `$headers` 数组中[^3]。 --- ### 注意事项 某些情况下,默认的 cURL 行为可能会干扰自定义头部的效果。例如,在 Gin 框架下处理参数绑定时,可能需要注意客户端与服务端之间的交互细节[^4]。因此建议仔细验证最终接收到的请求是否符合预期。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值