header使用笔记

1)header()   必须在任何实际输出以前调用,不管是来自普通的 HTML 标记,空行或者   PHP。有一个常见错误就是在经过   include()require()   或一些其它的文件存取类函数读取代码时,有一些空格或者空行在调用   header() 以前被发送了出去。一样在一个单独的   PHP/HTML 文件中这个错误也很广泛。
<?php
php

<html> html

/* 这将产生一个错误,由于在调 header()
* 以前已经输出了东西 */
header('Location: http://www.example.com/');
?>
浏览器

能够经过一些输出缓冲函数来解决这个问题,例如 ob_start()ob_end_flush() 缓存


2)PHP 脚本一般会产生一些动态内容,这些内容必须不被浏览器或代理服务器缓存。不少代理服务器和浏览器均可以被下面的方法禁止缓存:
header
("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // 过去的时间
服务器


3)若是想提示用户保存所发送的数据,例如一个生成的 PDF   文件,能够经过发送 Content-Disposition   标头提供推荐的文件名来强制浏览器弹出一个保存文件对话框。 app

<?php
// 这样将会直接输出一个 PDF 文件
header('Content-type: application/pdf');
// 这样作就会提示下载 PDF 文件 downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');
// 这是 original.pdf 的源文件
readfile('original.pdf');
?>
函数

相关文章
相关标签/搜索