php - 执行 ob_get_clean 后不清除标头
问题描述
我有一个 php 文件,如下所示:
<?php
ob_start();
header("Location:http://google.com");
echo "hello world";
die(ob_get_clean());
?>
我希望在我的浏览器上看到 hello world,但它会重定向到 google。ob_get_clean 应该清除包括标题在内的输出,对吧?结果应该是 die("hello world"); 那么为什么会这样呢?
解决方案
header("Location:http://google.com");
这意味着页面在缓冲区启动时被重定向到 google.com。缓冲区用于存储输出数据,但在这种情况下页面被重定向到其他站点。所以代码的位置不正确。
推荐阅读
- c# - NBuilder 从 0 开始整数
- python - tf2 中的张量运算
- python - pyqt5:无法连接到显示器
- javascript - 在特定时间显示 div 在月份更改时重置
- html - 如何在Angular 8中检测角度值是否被用户更改或方法调用是否已更改
- symfony - PhpStorm 用省略号替换模板名称 - 如何将其关闭?
- node.js - 无法从 GCP 调度程序调用 Google Cloud Function
- amazon-web-services - 如何使用 API 将数据提取到 AWS SageMaker
- c# - 将可为空的整数值写回电子表格
- spring-boot - 带有规范的 Spring Data JPA @Query