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 )?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Convert JSON integers and floats to strings(将JSON整数和浮点数转换为字符串)
in php how do I use preg replace to turn a url into a tinyurl(在php中,如何使用preg替换将URL转换为TinyURL)
all day appointment for ics calendar file wont work(ICS日历文件的全天约会不起作用)
trim function is giving unexpected values php(Trim函数提供了意外的值php)
Basic PDO connection to MySQL(到MySQL的基本PDO连接)
PHP number_format returns 1.00(Php number_Format返回1.00)