PHP में tempnam() फ़ंक्शन एक अद्वितीय नाम वाली अस्थायी फ़ाइल बनाता है और उसका पूरा पथ लौटाता है। tmpfile() के विपरीत, यह फ़ाइल स्वचालित रूप से नहीं हटती - मैन्युअल unlink() आवश्यक है।
सिंटैक्स (Syntax)
tempnam(string $directory, string $prefix): string|false
पैरामीटर्स (Parameters)
$directory − वह निर्देशिका जहाँ अस्थायी फ़ाइल बनेगी।
$prefix − फ़ाइल नाम का उपसर्ग (prefix)।
रिटर्न वैल्यू (Return Value)
सफलता पर नई अस्थायी फ़ाइल का पूरा पथ, विफलता पर false।
उदाहरण (Examples)
उदाहरण 1: मूल उपयोग
<?php
$tempFile = tempnam("C:\\test\\new", "TMP");
echo $tempFile;
// आउटपुट: C:\test\new\TMP1.tmp (या समान)
?>
आउटपुट
C:\test\new\TMP1.tmp
उदाहरण 2: सिस्टम अस्थायी निर्देशिका उपयोग करना
<?php $tempFile = tempnam(sys_get_temp_dir(), "myapp_"); echo $tempFile . "\n"; // फ़ाइल बनती है, अब उपयोग करें file_put_contents($tempFile, "Temporary data"); // काम पूरा होने पर हटाएं unlink($tempFile); ?>
उदाहरण 3: बाहरी प्रोग्राम के लिए अस्थायी फ़ाइल
<?php
$input = tempnam(sys_get_temp_dir(), "input_");
$output = tempnam(sys_get_temp_dir(), "output_");
file_put_contents($input, "data to process");
// बाहरी कमांड चलाएं
exec("external_program < $input > $output");
$result = file_get_contents($output);
// सफाई
unlink($input);
unlink($output);
?>
tempnam() vs tmpfile()
| विशेषता | tempnam() | tmpfile() |
|---|---|---|
| रिटर्न | पथ (string) | पॉइंटर (resource) |
| स्वतः सफाई | नहीं | हाँ |
| फाइलसिस्टम पर दृश्य | हाँ | नहीं (आंतरिक) |
| बाहरी प्रक्रिया उपयोग | आसान (पथ पास करें) | कठिन (पॉइंटर पास नहीं कर सकते) |
सुरक्षा नोट
tempnam()रेस कंडीशन (race condition) संवेदनशील हो सकता है (नाम जनरेशन और निर्माण के बीच)।- संवेदनशील डेटा के लिए
tmpfile()याsys_get_temp_dir()+random_bytes()बेहतर। - हमेशा उपयोग के बाद
unlink()करें।