news 2026/6/7 10:32:46

PHP输入输出与缓冲控制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PHP输入输出与缓冲控制

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高效输出文件内容。理解这些功能可以更好地控制响应输出。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/7 10:32:44

定量与定性双轨驱动的数据清洗方法论

1. 项目概述:为什么数据清洗不能只靠“删空行”和“去重”“数据清洗”这个词,在很多人的印象里,就是Excel里点几下筛选、CtrlH替换几个错别字、再把重复的客户记录手动合并一下。我带过不少刚转行做数据分析的朋友,他们第一次交来…

作者头像 李华
网站建设 2026/6/7 10:30:50

MuleSoft企业级AI编排:让大语言模型成为可审计、可治理的生产组件

1. 项目概述:当企业级集成平台遇上大语言模型,不是叠加,而是重定义“AI Orchestration in Action: How MuleSoft and LLMs Fuel the Future of Enterprise AI”——这个标题里藏着一个正在发生的、静默却剧烈的范式迁移。它说的不是“用MuleS…

作者头像 李华
网站建设 2026/6/7 10:25:47

GPT-4o可视化搭档:用自然语言生成可运行图表代码

1. 项目概述:这不是“调用API”,而是重构数据可视化的交互范式 “GPT-4o Python Charting Insanity: Prompting For Instant Data Visuals”——这个标题里没有一个词是虚的。**Insanity(疯狂)**不是修辞,是我在连续72…

作者头像 李华