php中的header

最近作东西涉及到header及一些http协议之间的东西,重新看了下php手册(绝对是个好东西),更明白了一些东西,记下先,可能还会补充:


手册摘入:

header
发送一个原始 HTTP 标头 (PHP 3, PHP 4, PHP 5)
void header ( string string [, bool replace [, int http_response_code]] )

具体各参数就看php手册了,说得很详细,这次我用到的是header("Location: http://ovliverlin.cnblogs.com");这个功能,这样实现跳转在单独空白页面是没问题的,但是如果不是手册所说得情况“要记住 header() 必须在任何实际输出之前调用,不论是来自普通的 HTML 标记,空行或者 PHP。”就会产生header already sented的错误提示,且不会执行跳转,在web端可以使用<script>location.href = "abc.php"</script>代替,但是如果无法实现js的wap端呢?而或必须使用header的情况呢?这样可以使用缓存来解决。手册中引用“可以在代码中使用 ob_start()ob_end_flush() 来实现这样的功能,或者通过修改 php.ini 中的 output_buffering 配置选项来实现,也可以通过修改服务器配置文件来实现。
如下:
ob_start();
<html>
<head></head>
<body>
.....
<?php
header("Location: http://ovliverlin.cnblogs.com");
?>
</body>
</html>

手册中的ob_start()解释是:
This function will turn output buffering on. While output buffering is active no output is sent from the script (other than headers), instead the output is stored in an internal buffer
也就是它可以缓存所有的页面内容(除header)标头,即:这样就使得header优先于其他输出。

这种用法有个注意:
注意:

Microsoft Internet Explorer 4.01 中的一个漏洞使得该机制无法正常工作,无解决方案。在 Microsoft Internet Explorer 5.5 中也有个漏洞影响到这一点,升级到 Service Pack 2 或更高版本可以解决。


转载于:https://www.cnblogs.com/ovliverlin/archive/2007/10/19/930759.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值