Czy echo
jest równy , czy też echo
pisze do innego strumienia? Używam PHP od jakiegoś czasu, ale nie wiem zbyt dobrze, co się dzieje na niższym poziomie.ma echo równe fputs (STDout)?
26
A
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.
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