PHP输入输出与缓冲控制
输出缓冲是PHP中控制响应输出的机制。今天说说PHP的输出缓冲和各种输入输出技术。
PHP的输出缓冲用ob系列函数控制。
```php
ob_start();
echo "内容被缓冲\n";
$content = ob_get_clean();
echo "输出: $content\n";
ob_start();
echo "第一行\n";
echo "第二行\n";
$output = ob_get_contents();
ob_end_clean();
file_put_contents('/tmp/output.txt', $output);
?>
多级缓冲嵌套。
```php
ob_start();
echo "外层\n";
ob_start();
echo "内层\n";
$inner = ob_get_clean();
echo "内层内容: $inner\n";
$outer = ob_get_clean();
echo "外层内容: $outer\n";
?>
输出压缩。
```php
ob_start('ob_gzhandler');
echo str_repeat("数据", 1000);
ob_end_flush();
// 另一种方式
ini_set('zlib.output_compression', '1');
echo "压缩输出\n";
?>
输出缓冲的常见用途。
```php
function renderView(string $template, array $data = []): string
{
extract($data);
ob_start();
include $template . '.php';
return ob_get_clean();
}
// 在输出前修改内容
ob_start(function ($buffer) {
return str_replace("\n", "
\n", $buffer);
});
echo "第一行\n第二行\n";
ob_end_flush();
?>
HTTP头控制。
```php
header('Content-Type: application/json; charset=utf-8');
header('X-Custom-Header: value');
header('Cache-Control: no-cache');
http_response_code(200);
echo json_encode(['status' => 'ok']);
?>
文件下载控制。
```php
function downloadFile(string $path): void
{
if (!file_exists($path)) {
http_response_code(404);
exit;
}
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . basename($path) . '"');
header('Content-Length: ' . filesize($path));
header('Cache-Control: no-cache');
readfile($path);
exit;
}
?>
PHP的输出缓冲和输入输出控制功能很强大。ob系列函数可以捕获和修改输出内容。header函数控制HTTP响应头。readfile高效输出文件内容。理解这些功能可以更好地控制响应输出。
PHP输入输出与缓冲控制
张小明
前端开发工程师
定量与定性双轨驱动的数据清洗方法论
1. 项目概述:为什么数据清洗不能只靠“删空行”和“去重”“数据清洗”这个词,在很多人的印象里,就是Excel里点几下筛选、CtrlH替换几个错别字、再把重复的客户记录手动合并一下。我带过不少刚转行做数据分析的朋友,他们第一次交来…
MuleSoft企业级AI编排:让大语言模型成为可审计、可治理的生产组件
1. 项目概述:当企业级集成平台遇上大语言模型,不是叠加,而是重定义“AI Orchestration in Action: How MuleSoft and LLMs Fuel the Future of Enterprise AI”——这个标题里藏着一个正在发生的、静默却剧烈的范式迁移。它说的不是“用MuleS…
别只刷题了!拆解NISP八套模拟题,手把手教你构建个人网络安全知识体系
从NISP模拟题到实战:网络安全知识体系构建全指南网络安全学习的困境与突破每次打开网络安全题库,你是否也感到迷茫?面对数百道题目,我们往往陷入"刷题-遗忘-再刷题"的循环。NISP八套模拟题表面是认证考试材料࿰…
从Shiro的Cookie到反弹Shell:一次完整的Shiro-550漏洞复现与深度利用(含VPS配置与Payload生成)
Java反序列化漏洞实战:从Shiro-550漏洞复现到深度利用在安全研究领域,Java反序列化漏洞因其广泛影响面和潜在危害性一直备受关注。本文将带您从零开始,通过一个典型的Shiro-550漏洞案例,完整演示如何搭建实验环境、检测漏洞、构造…
崩坏星穹铁道自动化助手:如何用三月七小助手实现游戏任务全自动管理
崩坏星穹铁道自动化助手:如何用三月七小助手实现游戏任务全自动管理 【免费下载链接】March7thAssistant 崩坏:星穹铁道全自动 三月七小助手 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 你是否厌倦了每天重复登录《崩坏&…
GPT-4o可视化搭档:用自然语言生成可运行图表代码
1. 项目概述:这不是“调用API”,而是重构数据可视化的交互范式 “GPT-4o Python Charting Insanity: Prompting For Instant Data Visuals”——这个标题里没有一个词是虚的。**Insanity(疯狂)**不是修辞,是我在连续72…