PHP में tmpfile() फ़ंक्शन एक अस्थायी फ़ाइल (temporary file) बनाता है जो केवल वर्तमान स्क्रिप्ट निष्पादन के दौरान मौजूद रहती है। फ़ाइल स्वचालित रूप से हट जाती है जब fclose() कॉल किया जाता है या स्क्रिप्ट समाप्त होती है।
सिंटैक्स (Syntax)
tmpfile(): resource|false
पैरामीटर्स (Parameters)
- कोई पैरामीटर नहीं।
रिटर्न वैल्यू (Return Value)
सफलता पर फ़ाइल पॉइंटर (resource) लौटाता है, विफलता पर false।
उदाहरण (Examples)
उदाहरण 1: मूल उपयोग - लिखना और पढ़ना
<?php $tmp = tmpfile(); fwrite($tmp, "This is demo text in temp file!"); rewind($tmp); // पॉइंटर शुरुआत पर echo fread($tmp, 1024); fclose($tmp); // फ़ाइल स्वचालित रूप से हट जाती है ?>
आउटपुट
This is demo text in temp file!
उदाहरण 2: बड़ी डेटा प्रोसेसिंग के लिए अस्थायी संग्रहण
<?php
$tmp = tmpfile();
// बड़ी मात्रा में डेटा लिखें
for ($i = 0; $i < 10000; $i++) {
fwrite($tmp, "Line $i\n");
}
// पुनः पढ़ें
rewind($tmp);
$count = 0;
while (fgets($tmp)) $count++;
echo "Lines: $count"; // 10000
fclose($tmp);
?>
उदाहरण 3: अपलोड की गई फ़ाइल को अस्थायी फ़ाइल में कॉपी करना
<?php // $_FILES['upload']['tmp_name'] पहले से ही अस्थायी फ़ाइल है // लेकिन यदि आगे प्रोसेसिंग के लिए अपनी tmpfile चाहिए: $tmp = tmpfile(); $src = fopen($_FILES['upload']['tmp_name'], 'rb'); stream_copy_to_stream($src, $tmp); fclose($src); rewind($tmp); // अब $tmp से प्रोसेस करें... fclose($tmp); ?>
tmpfile() vs tempnam()
| विशेषता | tmpfile() | tempnam() |
|---|---|---|
| रिटर्न | फ़ाइल पॉइंटर (resource) | फ़ाइल पथ (string) |
| स्वतः हटाई जाती है | हाँ (fclose/स्क्रिप्ट अंत पर) | नहीं (मैन्युअल unlink चाहिए) |
| दृश्यता | केवल वर्तमान प्रोसेस | फाइलसिस्टम पर दृश्य |
| उपयोग | आंतरिक अस्थायी डेटा | बाहरी प्रक्रियाओं के लिए पथ |
महत्वपूर्ण
tmpfile() द्वारा बनाई गई फ़ाइल का नाम जानने के लिए stream_get_meta_data($tmp)['uri'] उपयोग करें (PHP 5.4+):
<?php $tmp = tmpfile(); $meta = stream_get_meta_data($tmp); echo $meta['uri']; // जैसे /tmp/phpA1b2C3 ?>