2011-08-11 14 views

Odpowiedz

39

Według PHP's manual page on wrappers, odpowiedź brzmi: Nie.

php: // wyjście

php: // wyjście jest strumień tylko do zapisu, który pozwala na zapisywanie do mechanizmu wyjściowego bufora w taki sam sposób, jak print() i echo().

print i echo napisz do php://output strumienia, natomiast fputs(STDOUT) pisze do php://stdout.

zrobiłem mały test:

<?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"; 

This script wyjścia (testowane na PHP 5.2.13, Windows):

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

czyli pisanie bezpośrednio do STDOUT omija ob ładowarki.

+0

Gdzie jest zwykle domyślne miejsce przechowywania danych wyjściowych dla STDOUT? Na przykład. STDERR zapisuje do 'C: \ xampp \ apache \ logs \ error.log', ale STDOUT wydaje się być" brakujący ". – Pacerier