`
kaozjlin
  • 浏览: 117410 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

PHP header() 使用心得

    博客分类:
  • php
阅读更多

下面是关于header函数的详细使用说明:

不管页面有多少 header,它会执行最后一个,不过是有条件的,例如:

header('Location:http://www.jb51.net'); 
header('Location:http://www.g.cn'); 
header('Location:http://www.baidu.com'); 

这个就会跳到百度

header函数的作用

PHP只是以HTTP协议将HTML文档的标头送到浏览器,告诉浏览器具体怎么处理这个页面,至于传送的内容则需要熟悉一下HTTP协议了,与PHP无关了。

传统的标头一定包含下面三种标头之一,并只能出现一次。

Location: xxxx:yyyy/zzzz 
Content-Type: xxxx/yyyy 
Status: nnn xxxxxx 

HTTP协议的运作方式

HTTP协议是基于请求/响应范式的。一个客户机与服务器建立连接后,发送一个请求给服务器,请求方式的格式为,统一资源标识符、协议版本号,后边是 MIME信息包括请求修饰符、客户机信息和可能的内容。服务器接到请求后,给予相应的响应信息,其格式为一个状态行包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。

它分四个过程,在HTTP协议中,服务端是指提供HTTP服务的部分,客户端是指你使用的浏览器或者下载工具等等。在通讯时,由客户端发出请求连接,服务端建立连接;然后,客户端发出HTTP请求(Request),服务端返回响应信息(Respond),由此完成一个HTTP操作。

HTTP协议状态码表示的意思

1××  保留 
2××  表示请求成功地接收 
3××  为完成请求客户需进一步细化请求 
4××  客户错误 
5××  服务器错误   

操作实例

  • 重定向功能,这种最常见。
    <?php 
       Header("Location: http://www.php.net/"); 
    ?> 
    
  • 强制用户每次访问这个页面时获取最新资料,而不是使用存在客户端的缓存。
    <?php 
    //告诉浏览器此页面的过期时间(用格林威治时间表示),只要是已经过去的日期即可。 
    header("Expires: Mon, 26 Jul 1970 05:00:00 GMT"); 
    //告诉浏览器此页面的最后更新日期(用格林威治时间表示)也就是当天,目的就是强迫浏览器获取最新资料 
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT"); 
    //告诉客户端浏览器不使用缓存 
    header("Cache-Control: no-cache, must-revalidate"); 
    //参数(与以前的服务器兼容),即兼容HTTP1.0协议 
    header("Pragma: no-cache"); 
    //输出MIME类型 
    header("Content-type: application/file"); 
    //文件长度 
    header("Content-Length: 227685"); 
    //接受的范围单位 
    header("Accept-Ranges: bytes"); 
    //缺省时文件保存对话框中的文件名称 
    header("Content-Disposition: attachment; filename=$filename"); 
    ?> 
    
  • 输出状态值到浏览器,主要用于访问权限控制。
    <?php 
    header('HTTP/1.1 401 Unauthorized'); 
    header('status: 401 Unauthorized'); 
    ?> 
    

    比如要限制一个用户不能访问该页,则可设置状态为404,如下所示,这样浏览器就显示为即该页不存在 。

    <?php 
    header('HTTP/1.1 404 Not Found'); 
    header("status: 404 Not Found"); 
    ?> 
    

    注意: 传统的标头一定包含下面三种标头之一,并只能出现一次。 Content-Type: xxxx/yyyy Location: xxxx:yyyy/zzzz Status: nnn xxxxxx 在新的多型标头规格 (Multipart MIME) 方可以出现二次以上。

使用范例

  • 范例一: 本例使浏览器重定向到 PHP 的官方网站。
    Header("Location: http://www.php.net/"); 
    exit;  
    
  • 范例二: 要使用者每次都能得到最新的资料,而不是 Proxy 或 cache 中的资料,可以使用下列的标头:
    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");  
    
  • 范例三: 让使用者的浏览器出现找不到档案的信息。
    header("Status: 404 Not Found"); 
    
  • 范例四:让使用者下载档案。
    header("Content-type: application/x-gzip"); 
    header("Content-Disposition: attachment; filename=文件名"); 
    header("Content-Description: PHP3 Generated Data"); 
    
分享到:
评论

相关推荐

    php学习心得 php初学者 php

    header already sent 这个错误通常会在使用 HEADER 时出现,可能是因为在使用 HEADER 前 PRING 或者 ECHO 了,或者当前文件前面有空行,或者 INCLUDE 了一个文件,该文件尾部有空行或者输出。 8. PHP.ini 修改后...

    php header 详细使用说明与使用心得第1/2页

    `header()`函数非常强大且灵活,但使用时需要注意遵循一定的规则。 #### 二、作用 `header()`函数的主要作用是向浏览器发送HTTP标头,这些标头用于指导浏览器如何处理页面内容。以下是一些常见的HTTP标头: 1. **...

    php学习心得.doc

    本文档总结了多个实用的php学习心得,涵盖了php变量传递、win32平台下的Apache和Session配置、错误信息显示、邮件发送、MySQL密码设置、header already sent错误、php.ini修改无效、php安装、SQL语句调试、include和...

    php心得体验自我学习结果总结

    本文总结了 PHP 初学者常见的几个问题和解决方案,涵盖了变量传递、Session 使用、错误信息显示、邮件发送、MySQL 使用、header Already Sent 错误、php.ini 配置、ISAPI 安装、SQL 调试、include 和 require 的区别...

    php学习笔记_心得

    【PHP学习笔记_心得】 PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其适合于Web开发。在本文中,我们将深入探讨几个PHP的核心概念,包括如何在文件间进行调用、页面跳转的方法以及异常处理机制...

    风格的风格的

    - 在配置过程中,可能会出现提示找不到MySQL头文件的情况:`configure: error: Cannot find MySQL header files under /var/lib/mysql/`。 - 解决方法:确保MySQL-devel包已安装,并且在`configure`命令中正确指定...

    wordpress学习心得

    1. **初始化过程**:当用户访问WordPress站点时,一系列的函数和钩子(hooks)开始运行,从wp-load.php到wp-settings.php,再到wp-config.php,最后加载wp-blog-header.php。这些步骤构成了WordPress的初始化过程,...

    php学习总结

    - **HTTP头操作**:`header()`函数用于发送原始HTTP头部信息,常用于重定向页面。 - **URL解析**:使用`$_SERVER`数组获取当前页面的完整URL路径,以及使用`dirname()`函数获取URL的目录部分。 ### 6. 数据检索与...

    php+jquery编码方面的一些心得(utf-8 gb2312)

    例如,若要将编码设置为GB2312,可以在PHP脚本中使用header函数发送正确的Content-Type头部信息,代码如下: ```php header('Content-Type: text/html; charset=gb2312'); ``` 同样的,若要设置为UTF-8编码,可以...

    PHP采集利器 Snoopy 试用心得

    (下载snoopy) Snoopy是一个php类,用来模仿web浏览器的功能,它能完成获取网页内容和发送表单的任务。 Snoopy的一些特点: * 方便抓取网页的内容 * 方便抓取网页的文本内容 (去除HTML标签) * 方便抓取网页的链接 *...

    wordpress主题制作入门教程

    - **主题文件结构**:理解WordPress主题的基本文件组成,主要包括`header.php`、`footer.php`、`index.php`和`sidebar.php`等。 - **header.php**:包含页面头部信息,如导航栏等元素。 - **footer.php**:页面...

    LAMP内容总结

    1. **设置HTTP头部**:在PHP脚本开头添加`header("Content-Type: text/html; charset=utf-8");`,以明确告知浏览器内容采用UTF-8编码。 2. **确保文件编码**:与HTML文件相同,PHP文件也应保存为UTF-8编码,避免...

    smzdm wp模板

    模板文件结构通常包括header.php、footer.php、index.php、single.php等,每个文件负责网站的不同部分。熟悉这些文件可以方便地进行布局调整和功能添加。 WordPress模板的工作流程通常包括以下几个步骤: 1. **主题...

    Discuz x3.x模板 迪恩 游戏/VR/Game/测评 商业版 GBK.zip

    为了实现上述功能,模板中可能包含了一系列PHP脚本和CSS样式文件,如header.php、footer.php、style.css等,它们共同构成了模板的基础框架。此外,3se.cc三色源码可能是模板的组成部分之一,提供了额外的定制化选项...

    10红灰简约心理读书交互动态全套网站源代码.rar

    开发者可能使用了HTML5的新特性,如语义化标签(header, footer, section, article等),以及音频和视频元素,来提升用户体验。 2. JavaScript:JavaScript是一种客户端脚本语言,用于实现网页的动态效果和交互功能...

    绝对实用的H+ 主题框架

    社区活跃,开发者可以通过在线论坛、GitHub等平台与其他使用者交流心得,共享资源。 综上所述,H+主题框架是一个全面、高效的解决方案,适用于构建响应式、基于HTML5的后台管理系统。它的响应式设计、强大的HTML5...

    Like-Girl V5.0.0恋爱主题博客自适应模板.zip

    《Like-Girl V5.0.0恋爱主题博客自适应模板》是一款专为情侣和情感博主设计的网站模板,它采用先进的技术与设计理念,旨在打造一个温馨、浪漫的在线空间,让人们分享情感故事,交流恋爱心得。这款模板以其独特的恋爱...

    EduExpression-开源

    10. **header.php**:这是一个常见的布局文件,包含了网站头部的HTML结构,可能包括导航菜单、logo、顶部通知等元素。 通过这些文件,开发者可以构建一个完整的教育博客系统,提供学校管理、用户注册和管理、内容...

Global site tag (gtag.js) - Google Analytics