在Windows 7的Apache 2.2中使用PHP 5.3作为php5_module.
stdout在上面的配置中去了哪里?
使用以下代码进行测试:
<?php
$stdout = fopen('php://stdout', 'w');
fwrite($stdout, "stdout<br />\n");
$output = fopen('php://output', 'w');
fwrite($output, "output<br />\n");
?>
Run Code Online (Sandbox Code Playgroud)
这仅显示output在浏览器中.stdout会发生什么?
dre*_*010 21
正如手册在php://包装器手册页上显示:
php:// output是一个只写流,允许您以与print和echo相同的方式写入输出缓冲区机制.
因此,如果要将输出写入浏览器,请使用 php://output
另一方面, php://stdout
允许直接访问PHP进程的相应输入或输出流.
在Apache的情况下,这个输出是Apache的stdout句柄,它通常在任何地方都看不到,因为这是Apache的控制台输出,它通常在后台运行.如果您在控制台的前台运行Apache,那么您在控制台php://stdout上可以看到任何写入的内容.由于Apache在后台运行,因此stdout通常无法在任何地方捕获或写入数据.
要测试此,请按照下列步骤操作:
/usr/local/apache2/bin/httpd -D FOREGROUND -k start)stdout在控制台上查找输出.| 归档时间: |
|
| 查看次数: |
7590 次 |
| 最近记录: |