header() 函数向客户端发送原始的 HTTP 报头。(官方解释)
通俗的讲header函数将参数中的字符串作为服务端的响应头来返回给客户端。什么是服务端的响应头?打开谷歌浏览器看看network中的请求response header信息即可。更多的参数百度response header即可
浏览器一般会根据response header属性值做出对应响应,例如:
header('Set-Cookie:ecax_2132_sid=bW8Al4; expires=Mon, 20-Nov-2017 05:31:57 GMT; Max-Age=86400; path=/');以上的代码设置后response header会立即显示,浏览器看到Set-Cookie属性立即根据您的设置来写入cookies信息。完全可以代替php的Set-Cookie方法来设置cookies信息。
我们通常想要知道一个网站的PHP版本是多少,都会通过响应头来查看,例如我的响应头: x-powered-by:PHP/7.1.5
有些时候我们的需求要修改或者隐藏,并且不想修改web服务器配置,可以这么修改,例如:
header('x-powered-by:ASP.NET');
header('x-powered-by:PHP/9.5.25');其他的常用方法可以参考response header自由设置,下面贴出网上整理的常用代码(不想手打直接复制了下面):
1. 跳转页面
header('Location:'.$url); //Location和":"之间无空格。
复制代码
2. 声明content-type
header('content-type:text/html;charset=utf-8');
3. 返回response状态码
header('HTTP/1.1 404 Not Found');
4. 在某个时间后执行跳转
header('Refresh: 10; url=http://www.baidu.com/'); //10s后跳转。
5. 控制浏览器缓存
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
6. 执行http验证
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Basic realm="Top Secret"');
7. 执行下载操作
header('Content-Type: application/octet-stream'); //设置内容类型
header('Content-Disposition: attachment; filename="example.zip"'); //设置MIME用户作为附件
header('Content-Transfer-Encoding: binary'); //设置传输方式
header('Content-Length: '.filesize('example.zip')); //设置内容长度
PHP验证码不显示的问题应该是经常的事情,我在这里把2种解决方案都发出来方便大家后期使用.因为是昨天晚上自己写验证码都没有显示,我就直接把之前和李炎恢老师上课写的验证码拿来还是不显示,醉了。首先是第一种方法:1、打开服务器安装目录下的php.ini文件;2、去掉;extension=php_gd.d...
001源码:/* * $xml_str是xml字符串 */ function xmltoarray($xml_str) { //禁止XML实体扩展攻击 libxml_disable_entity_loader(true); //拒绝包含...
Redis提供了发布订阅功能,可以用于消息的传输,Redis的发布订阅机制包括三个部分,发布者(publisher),订阅者(subscriber)和频道(channel)。 发布者和订阅者都是Redis客户端,Channel则为Redis服务器端,发布者将消息发送到某个的频道,订阅了这个...
在项目下的composer配置文件修改(PaySdk是我这里一个支付sdk的目录,包含各种各样的支付sdk,这样写的意思让composer自动把PaySdk下的所有文件自动加载):"autoload": { &...
断点下载的原理:http请求头添加Range参数告诉文件服务器端需要的字节范围例如1个文本文件的字节为1000,第一次请求Range: bytes=0-500第二次请求Range: bytes=501-1000通过每次的请求将返回的流追加写入到文件。注意的项目:断点下载服务器端的每次只返回字节传输的...
PHP简单定时器可以通过pcntl_signal创建闹钟信号来实现。但是缺点很明显,性能一般,要自己实现守护进程,不支持毫秒级定时器,单进程不支持多个闹钟信号,不能跨平台运行event扩展支持的事件多,性能高。<?php //创建event配置.[空配置] $eventConfig ...