2011-08-11 2 views
26

echofputs(STDOUT)과 같거나 echo은 다른 스트림에 쓸 수 있습니까? 나는 잠시 동안 PHP를 사용해 왔지만 하위 레벨에서 실제로 무슨 일이 일어나는지 잘 모른다.echo equal fputs (STDout)입니까?

답변

39

PHP's manual page on wrappers에 따르면, 응답은

인 PHP : // 출력

PHP : // 출력하면 출력 버퍼기구에 연락 할 수 있도록 쓰기 전용 스트림 print()와 echo()와 같은 방식으로 호출됩니다. 반면 fputs(STDOUT)

printphp://output 스트림 echo 기록은 php://stdout에 쓴다.

<?php 

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

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

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

이 스크립트의 출력 (PHP 5.2.13에서 테스트, 창) :

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

즉 직접 산부인과 핸들러를 무시 STDOUT 쓰기

나는 약간의 테스트를했다.

+0

STDOUT의 출력이 저장되는 일반적인 기본 위치는 어디입니까? 예 : STDERR은'C : \ xampp \ apache \ logs \ error.log'에 기록하지만 STDOUT은 "없는 것"으로 보입니다. – Pacerier