仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 722|回复: 8
打印 上一主题 下一主题

[学习教程] PHP教程之php header的用法小结

[复制链接]
兰色精灵 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:13:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
最近陆续的有人问我学习php的心得,现在整理为下面,希望可以对大家有些帮助。本篇文章对php言语中header函数的感化和用法做一个小结。
phpheader()函数的详细感化是向客户端发送一个原始HTTP标头[HttpHeader]到客户端。
标头(header)是服务器以HTTP协义传HTML材料到扫瞄器前所送出的字串,在标头与HTML文件之间尚需空一行分开。在任何实践的输入被发送之前挪用header()函数(在PHP4和更高的版本中,您可使用输入缓存来办理此成绩)。
上面举一些对照罕见的header用法示例:
(1)利用header完成重定向(等价于取代用户在地点栏输出url)。
  1. <?phpheader("Location:http://www.Alixixi.com/mysql/407.html";);exit;//注重务必在每一个重定向以后都必需加上exit,制止产生毛病后,代码会持续向下实行?>
复制代码
  1. <?php/**@title:PHP完成准时跳转@功效:守候指定的工夫,然后再跳转到指定页面(取代htmlmeta体例)*/header("refresh:3;url=http://www.Alixixi.com/javascript-function/605.html");echo正在加载,请稍等...<br>三秒后主动跳转;/*申明:若守候工夫为0,则与header("location:")等效。*/?>
复制代码
(2)克制页面在扫瞄器中被缓存。
假如因营业必要会见者每次都扫瞄页面都是失掉最新的材料,而不是Proxy或cache中的材料,可使用以下的标头:
  1. <?phpheader(Expires:Mon,26Jul199705:00:00GMT);header(Last-Modified:.gmdate(D,dMYH:i:s).GMT);header(Cache-Control:no-store,no-cache,must-revalidate);header(Cache-Control:post-check=0,pre-check=0,false);header(Pragma:no-cache);//兼容http1.0和https?>
复制代码
实在这里次要就是设置上面几个选项的值:
CacheControl=no-cache
Pragma=no-cache
Expires=-1

当HTTP1.1服务器指定CacheControl=no-cache时,扫瞄器就不会缓存该网页。新式HTTP1.0服务器不克不及利用Cache-Control题目。以是为了向后兼容HTTP1.0服务器,IE利用Pragma:no-cache题目对HTTP供应特别撑持。
有关Cache-control的详细先容请参考本站文章:
网页缓存把持Cache-control罕见的取值有private、no-cache、max-age、must-revalidate先容
假如客户端经由过程平安毗连(https://)与服务器通信,且服务器在呼应中前往Pragma:no-cache题目,则InternetExplorer不会缓存此呼应。注重:Pragma:no-cache仅当在平安毗连中利用时才避免缓存,假如在非平安页中利用,处置体例与Expires:-1不异,该页将被缓存,但被标志为当即过时。
Expires是个好东东,假如服务器上的网页常常变更,就把它设置为-1,暗示当即过时。假如一个网页天天清晨1点更新,能够把Expires设置为第二天的清晨1点。
(3)让利用者的扫瞄器呈现找不到档案的信息。
网上良多材料如许写:php的函数header()能够向扫瞄器发送Status标头,如 header(”Status:404NotFound”)。可是我发明实践上扫瞄器前往的呼应倒是:
HTTP/1.x200OK
Date:Thu,03Aug200607:49:11GMT
Server:Apache/2.0.55(Win32)PHP/5.0.5
X-Powered-By:PHP/5.0.5
Status:404NotFound
Content-Length:0
Keep-Alive:timeout=15,max=98
Connection:Keep-Alive
Content-Type:text/html

查了一些材料,准确的写法是:
header(”http/1.1404NotFound”);
第一部分为HTTP协定的版本(HTTP-Version);第二部分为形态代码(Status);第三部分为缘故原由短语(Reason-Phrase)。
(4)让会见者下载档案(埋没文件的地位)。
我们都晓得经由过程原始的url就能够完成一般文件下载,可是假如我们必要保密文件在服务器上的存储地位,就不克不及间接把文件链接显现出来,这里我们就能够经由过程header函数埋没文件地点同时又完成文件的下载,详细代码以下:
  1. <?phpheader("Content-type:application/x-gzip");header("Content-Disposition:attachment;filename=Alixixi.zip");header("Content-Description:PHP3GeneratedData");?>
复制代码
别的,关于利用php举行文件下载,能够参照本站文章:
PHP文件下载函数(代码)
上面枚举一些并非十分罕见的header的用法示例:
  1. <?php//ok200header(HTTP/1.1200OK);//设置一个404头:header(HTTP/1.1404NotFound);//设置地点被永世的重定向header(HTTP/1.1301MovedPermanently);//文档言语header(Content-language:en);//告知扫瞄器最初一次修正工夫$time=time()-60;//orfilemtime($fn),etcheader(Last-Modified:.gmdate(D,dMYH:i:s,$time).GMT);//告知扫瞄器文档内容没有产生改动header(HTTP/1.1304NotModified);//设置内容长度header(Content-Length:1234);//设置内容范例: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-shockwave-Flash);//Flash动画?>
复制代码
终于理解了数据库的概念,而且让你兴奋不已的是你终于可以通过PHP来连接数据库了,这期间你是怎么学会的,我们不去考证了,但是事实证明,你已经可以了。
不帅 该用户已被删除
沙发
发表于 2015-1-19 05:23:05 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
兰色精灵 该用户已被删除
板凳
 楼主| 发表于 2015-1-24 14:00:48 来自手机 | 只看该作者
爱上php,他也会爱上你。
地板
发表于 2015-2-1 16:30:45 | 只看该作者
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
只想知道 该用户已被删除
5#
发表于 2015-2-7 09:52:58 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
分手快乐 该用户已被删除
6#
发表于 2015-2-21 16:51:28 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
小女巫 该用户已被删除
7#
发表于 2015-3-6 20:57:18 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
爱飞 该用户已被删除
8#
发表于 2015-3-13 09:10:09 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
莫相离 该用户已被删除
9#
发表于 2015-3-20 19:05:45 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-20 18:48

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表