曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 3162|回复: 0
打印 上一主题 下一主题

header() -- 向客户端发送原始 HTTP 报头

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34395
跳转到指定楼层
楼主
发表于 2012-5-31 17:05:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
header() 函数向客户端发送原始的 HTTP 报头。

注意,header() 必须在任何实际输出发送前调用

定义如下:
[Plain Text] 纯文本查看 复制代码
void header ( string $string [, bool $replace = true [, int $http_response_code ]] )

其中 $string 是要发送的报头字符串。

$replace 为可选参数,指示该报头是否替换之前的报头,或添加第二个报头。默认是 true(替换)。false(允许相同类型的多个报头)。


$http_response_code 为可选参数,把 HTTP 响应代码强制为指定的值。

示例代码-1:
[PHP] 纯文本查看 复制代码
<?php
// 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 original.pdf
readfile('original.pdf');
?>

当执行该段代码时,会提示用户保存一个生成的 PDF 文件(Content-Disposition 报头用于提供一个推荐的文件名,并强制浏览器显示保存对话框),该 PDF 文件在下载时默认的名字为 downloaded.pdf,而在服务器上他的名字则为 original.pdf 。:


又如,header() 函数可以用来保证页面的编码。比如查询 MySQL 数据库时得到中文是 utf-8 的编码格式,而浏览器若是没法识别 http header 中的 content-type时,默认按照系统的编码来显示页面,如简体中文系统下浏览器会使用GB2312 或 GBK ,这样一来在显示结果时就会出现乱码,除非手动在浏览器的”编码“里选择”utf-8" 。如果在程序中用了 header() 函数对编码进行了保证,那么浏览器会根据该 HTTP 头选用合适的编码来显示结果内容。比如像下面的代码:
[Plain Text] 纯文本查看 复制代码
header(”Content-type: text/html;charset=utf-8″); 

这样做之后,内容显示:

如果不用的话,可能显示的是乱码:

本帖子中包含更多资源

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

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-5-4 01:19 , Processed in 0.067361 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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