2011-08-11 10 views
26

echo बराबर fputs(STDOUT), या echo एक अलग स्ट्रीम को लिखते हैं? मैंने थोड़ी देर के लिए PHP का उपयोग किया है, लेकिन मुझे बहुत अच्छी तरह से पता नहीं है कि वास्तव में निम्न स्तर पर क्या हो रहा है।बराबर fputs (एसटीडीआउट) echo करता है?

उत्तर

39

PHP's manual page on wrappers के अनुसार, इस सवाल का जवाब नहीं।

है php: // उत्पादन

php: // उत्पादन एक लेख केवल धारा है कि आप उत्पादन बफर तंत्र को लिखने की अनुमति देता है उसी तरह प्रिंट() और गूंज()।

print और echophp://output स्ट्रीम में लिखें, जबकि fputs(STDOUT)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 के लिए आउटपुट संग्रहीत किया जाता है? जैसे एसटीडीईआरआर 'सी: \ xampp \ apache \ logs \ error.log' को लिखता है लेकिन STDOUT "गायब" लगता है। – Pacerier

संबंधित मुद्दे