2011-05-10 9 views
16

मैं पढ़ने में परेशानी आ रही है औरसमस्याएँ आ रही हैं पढ़ने/php लेखन: // अस्थायी धारा

पीएचपी 5.3.2 में php://temp धारा लेखन मैं मूल रूप से है:

file_put_contents('php://temp/test', 'test'); 
var_dump(file_get_contents('php://temp/test')); 

केवल उत्पादन मुझे string(0) ""

क्या मुझे अपना 'टेस्ट' वापस नहीं मिलना चाहिए?

उत्तर

14

php://temp एक फ़ाइल पथ नहीं है, यह एक छद्म प्रोटोकॉल है जो हमेशा एक नई यादृच्छिक अस्थायी फ़ाइल बनाता है जब इस्तेमाल किया है। /test वास्तव में पूरी तरह से अनदेखा किया जा रहा है। php://temp रैपर स्वीकार करने वाला एकमात्र अतिरिक्त "तर्क" /maxmemory:n है। आप फ़ाइल को खोल अस्थायी धारा के लिए चारों ओर संभाल रखने की जरूरत है, या यह त्याग दिया जाएगा:

$tmp = fopen('php://temp', 'r+'); 
fwrite($tmp, 'test'); 
rewind($tmp); 
fpassthru($tmp); 
fclose($tmp); 

http://php.net/manual/en/wrappers.php.php#refsect1-wrappers.php-examples

+0

धन्यवाद की तरह उपयोग करते हैं - मस्तिष्क बाहर शॉर्ट जब मैन्युअल पृष्ठ पहले ... – HorusKol

+0

मिले मैं क्या जरूरत पढ़ने - vfsStream – HorusKol

6

हर बार देखें, जब आप fopen का उपयोग हैंडलर, php की सामग्री प्राप्त करने के: // अस्थायी हो जाएगा। सामग्री प्राप्त करने के लिए रिवाइंड() और stream_get_contents() का उपयोग करें। या, सामान्य cachers, एपीसी या मेम्कैश :)

+0

का उपयोग कर एक तरफ ध्यान दें के रूप में, आप 'rewind' कर सकते हैं परोक्ष साथ 'stream_get_contents ($ स्ट्रीम, -1, 0)'। वह शुरुआत से पूरी धारा पढ़ेगा। – quickshiftin

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