परिचय
php:// रैपर विभिन्न I/O धाराओं तक पहुंच को सक्षम करता है। इसमें मानक इनपुट, आउटपुट और त्रुटि स्ट्रीम शामिल हैं। इन-मेमोरी, डिस्क समर्थित और फ़िल्टर्ड स्ट्रीम भी php:// प्रोटोकॉल के साथ एक्सेस की जाती हैं।
मानक स्ट्रीम
php://stdin , php://stdout और php://stderr एक PHP प्रक्रिया के लिए मानक इनपुट स्ट्रीम डिवाइस, मानक आउटपुट स्ट्रीम और त्रुटि स्ट्रीम तक सीधे पहुंच की अनुमति दें। पूर्वनिर्धारित स्थिरांक STDIN , STDOUT और STDERR क्रमशः इन धाराओं का प्रतिनिधित्व करते हैं।
php://इनपुट
php://इनपुट HTTP अनुरोध निकाय में निहित कच्चे डेटा तक केवल पढ़ने के लिए पहुंच की अनुमति देता है। ध्यान दें कि वही डेटा $HTTP_POST_RAW-DATA . में उपलब्ध है परिवर्तनीय (जिसे अब बहिष्कृत किया गया है)। हालांकि, enctype विशेषता के लिए php://input उपलब्ध नहीं है multipart/form-data पर सेट है
php://आउटपुट
यह रैपर केवल-लिखने की प्रक्रिया का प्रतिनिधित्व करता है, जो प्रिंट . के समान बफर तंत्र की अनुमति देता है और गूंज बयान।
php://fd
एक फ़ाइल डिस्क्रिप्टर इस आवरण के माध्यम से पहुँचा जा सकता है। मानक स्ट्रीम STDIN, STDOUT और STDERR को फाइल डिस्क्रिप्टर 1,2 और 3 असाइन किए गए हैं। हर दूसरी स्ट्रीम को इंक्रीमेंटिंग फाइल डिस्क्रिप्टर सौंपा गया है। इसलिए php://fd/5 फाइल डिस्क्रिप्टर 5 को संदर्भित करता है
php://मेमोरी
यह एक रीड/राइट स्ट्रीम है जो डेटा को अस्थायी रूप से मेमोरी में स्टोर करने की अनुमति देता है। php://temp आवरण समान है। हालांकि, बाद के मामले में, डेटा को मेमोरी के बजाय एक अस्थायी फ़ाइल में संग्रहीत किया जाता है।
php://फ़िल्टर
यह रैपर स्ट्रीम को खोले जाने पर फिल्टर के अनुप्रयोग की अनुमति देता है। फ़िल्टर विशेष रूप से रीडफाइल (), file_get_contents () और फ़ाइल () फ़ंक्शन के साथ उपयोगी होते हैं।
उदाहरण
निम्नलिखित उदाहरण में, कंसोल इनपुट को php://stdin . से पढ़ा जाता है और आउटपुट php://stdout . के साथ प्रदर्शित होता है
<?php $file=fopen("php://stdin","r"); $x=fread($file,10); echo $x; $out=fopen("php://stdout","w"); fwrite($out, $x); fclose($file); ?>
php://इनपुट स्ट्रीम रैपर HTTP अनुरोध से कच्चा डेटा लाने की अनुमति देता है। निम्नलिखित उदाहरण में, HTML फॉर्म POST विधि के साथ PHP स्क्रिप्ट में डेटा पोस्ट करता है
<html> <body> <form action="testscript.php" method="POST"> <input type="text" name="name"> <input type="text" name="age"> <input type ="submit" value="submit"> </form> </body> </html>
कच्चे HTTP डेटा को पुनः प्राप्त करने के लिए PHP स्क्रिप्ट इस प्रकार है -
<?php $json = file_get_contents("php://input"); $data = json_decode($json); print_r($json); ?>