沃梦达 / 编程问答 / php问题 / 正文

echo 是否等于 fputs( STDout )?

does echo equal fputs( STDout )?(echo 是否等于 fputs( STDout )?)

本文介绍了echo 是否等于 fputs( STDout )?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

echo 是否等于 fputs(STDOUT),或者 echo 是否写入不同的流?我已经使用 PHP 一段时间了,但我不太清楚在较低级别上实际发生了什么.

Does echo equal fputs( STDOUT ), or does echo write to a different stream? I've used PHP for a while now, but I don't know very well what's actually happening on a lower level.

推荐答案

根据 PHP 的包装器手册页,答案是否定的.

According to PHP's manual page on wrappers, the answer is No.

php://输出

php://output 是一个只写流,允许您写入输出缓冲机制与print()和echo()相同.

php://output is a write-only stream that allows you to write to the output buffer mechanism in the same way as print() and echo().

printecho 写入 php://output 流,而 fputs(STDOUT) 写入到php://stdout.

print and echo write to php://output stream, whereas fputs(STDOUT) writes to php://stdout.

我做了一个小测试:

<?php

$output = fopen('php://output', 'w');
ob_start();

echo "regular echo
";
fwrite(STDOUT, "writing to stdout directly
");
fwrite($output, "writing to php://output directly
");

$ob_contents = ob_get_clean();
print "ob_contents: $ob_contents
";

此脚本输出(在 PHP 5.2.13、windows 上测试):

This script outputs (tested on PHP 5.2.13, windows):

writing to stdout directly
ob_contents: regular echo
writing to php://output directly

即写入 STDOUT 直接绕过 ob 处理程序.

i.e. writing to STDOUT directly bypasses ob handlers.

这篇关于echo 是否等于 fputs( STDout )?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:echo 是否等于 fputs( STDout )?

基础教程推荐