परिचय: PHP फ़ाइलों के साथ काम क्यों कर सकता है?
\nकोई भी वेब प्रोजेक्ट देर-सबेर सर्वर पर डेटा सहेजने की आवश्यकता का सामना करता है। चाहे वह उपयोगकर्ता का अवतार अपलोड करना हो, त्रुटि लॉग बनाना हो या रिपोर्ट जनरेट करना हो - इन सबके लिए फ़ाइलों और फ़ोल्डरों को प्रबंधित करने की क्षमता की आवश्यकता होती है। PHP फ़ाइल सिस्टम के साथ काम करने के लिए फ़ंक्शन का एक शक्तिशाली सेट प्रदान करता है, और इन्हें सीखना उतना मुश्किल नहीं है जितना लगता है।
\nइस लेख में हम मुख्य संचालनों को समझेंगे: फ़ाइलों और निर्देशिकाओं का निर्माण, पढ़ना, लिखना, हटाना, साथ ही एक्सेस अधिकारों की जाँच करना। सभी उदाहरण शुद्ध PHP में लिखे गए हैं और आपके प्रोजेक्ट में उपयोग के लिए तैयार हैं।
\n\n1. मूल बातें: फ़ाइलों को खोलना, पढ़ना और लिखना
\nफ़ाइल के साथ कुछ भी करने से पहले, इसे खोलना आवश्यक है। इसके लिए PHP में fopen() फ़ंक्शन का उपयोग किया जाता है। यह एक संसाधन (फ़ाइल पॉइंटर) लौटाता है, जिसके साथ आगे काम किया जा सकता है।
फ़ाइल खोलने के मोड
\nfopen() का दूसरा पैरामीटर एक्सेस मोड है। यहाँ सबसे लोकप्रिय हैं:
- \n
'r'— केवल पढ़ना, पॉइंटर फ़ाइल की शुरुआत में। \n 'w'— लिखना (फ़ाइल बनाता है या मौजूदा को साफ़ करता है)। \n 'a'— फ़ाइल के अंत में जोड़ना (यदि नहीं है तो बनाता है)। \n 'x'— निर्माण और लिखना; यदि फ़ाइल पहले से मौजूद है तो त्रुटि। \n
उदाहरण: फ़ाइल में टेक्स्ट लिखना
\n<?php\n$filename = 'test.txt';\n$file = fopen($filename, 'w') or die('फ़ाइल खोलने में असमर्थ');\n$text = "नमस्ते, दुनिया!\\n";\nfwrite($file, $text);\nfclose($file);\necho 'फ़ाइल सफलतापूर्वक लिखी गई';\n?>\nलिखने के बाद, फ़ाइल को fclose() फ़ंक्शन से बंद करना सुनिश्चित करें - इससे सिस्टम संसाधन मुक्त होते हैं।
फ़ाइल को पंक्ति दर पंक्ति पढ़ना
\n<?php\n$file = fopen('test.txt', 'r');\nwhile (!feof($file)) {\n $line = fgets($file);\n echo $line . '<br>';\n}\nfclose($file);\n?>\nfeof() फ़ंक्शन जाँचता है कि फ़ाइल का अंत पहुँच गया है या नहीं। fgets() एक पंक्ति पढ़ता है।
सरल विकल्प
\nत्वरित संचालन के लिए, PHP रैपर फ़ंक्शन प्रदान करता है:
\n- \n
file_get_contents($filename)— पूरी फ़ाइल को एक स्ट्रिंग में पढ़ता है। \n file_put_contents($filename, $data)— एक स्ट्रिंग को फ़ाइल में लिखता है (बनाता या ओवरराइट करता है)। \n
<?php\n// पढ़ना\n$content = file_get_contents('test.txt');\necho $content;\n\n// लिखना\nfile_put_contents('new.txt', 'सरल लेखन');\n?>\n\n2. निर्देशिकाओं का प्रबंधन: निर्माण, हटाना, नेविगेशन
\nPHP में फ़ोल्डरों के साथ काम करना लगभग फ़ाइलों जितना ही सरल है। मुख्य फ़ंक्शन mkdir(), rmdir() और scandir() हैं।
फ़ोल्डर बनाना
\n<?php\n$dir = 'uploads';\nif (!is_dir($dir)) {\n mkdir($dir, 0777, true);\n echo 'फ़ोल्डर बनाया गया';\n} else {\n echo 'फ़ोल्डर पहले से मौजूद है';\n}\n?>\nपैरामीटर 0777 एक्सेस अधिकार (मास्क) है। तीसरा तर्क true नेस्टेड निर्देशिकाओं को पुनरावर्ती रूप से बनाने की अनुमति देता है (उदाहरण के लिए, images/2024/)।
फ़ोल्डर हटाना
\nrmdir() फ़ंक्शन केवल खाली निर्देशिका को हटाता है। यदि अंदर फ़ाइलें हैं, तो पहले इसे साफ़ करना होगा:
<?php\nfunction removeDir($dir) {\n if (!is_dir($dir)) return;\n $items = scandir($dir);\n foreach ($items as $item) {\n if ($item == '.' || $item == '..') continue;\n $path = $dir . '/' . $item;\n if (is_dir($path)) {\n removeDir($path);\n } else {\n unlink($path);\n }\n }\n rmdir($dir);\n}\nremoveDir('temp');\necho 'फ़ोल्डर हटा दिया गया';\n?>\n\nफ़ोल्डर में फ़ाइलों की सूची प्राप्त करना
\n<?php\n$files = scandir('uploads');\nforeach ($files as $file) {\n if ($file != '.' && $file != '..') {\n echo $file . '<br>';\n }\n}\n?>\n\n