/ / पीएचपी। फ़ाइलों और निर्देशिकाओं के साथ काम करें

पीएचपी। फाइलों और निर्देशिकाओं के साथ काम करना

MySQL और Access डेटाबेस तेजी से बन रहे हैंसार्वजनिक भंडारण मीडिया। लेकिन 1990 के दशक की शुरुआत में, PHP में फ़ाइलों के साथ काम करना लोकप्रिय था, CSV प्रारूप में स्वरूपित पाठ फ़ाइलों में रिकॉर्ड को सहेजते हुए, नई लाइनों द्वारा अलग किया गया।

काम के बुनियादी सिद्धांत

डेटाबेस सुविधाजनक हैं, लेकिन हर डेवलपर को चाहिएफ़ाइलों को पढ़ने और लिखने के बारे में कम से कम कुछ बुनियादी ज्ञान है। शायद कई लोग इस सवाल पर विचार करेंगे: “मुझे यह जानने की आवश्यकता क्यों है? यदि मैं फ़ाइलों का उपयोग करता हूं, तो वे XML में लिखे जाते हैं, और मैं सिर्फ एक पार्सर का उपयोग करता हूं। "

सीखना php

तो, यहाँ कुछ कारण बताए गए हैं कि आपको फ़ाइलों की आवश्यकता क्यों हो सकती है:

  1. बाइनरी डेटाबेस (द्विआधारी बड़ी वस्तुओं) के लिए द्विआधारी डेटा (जैसे छवि फ़ाइलों) को स्थानांतरित करने के लिए।
  2. एक अप्रचलित डेटाबेस या एप्लिकेशन से निर्यात किया गया डेटा (जैसे ईमेल पते) आयात करें।
  3. ऑफ़लाइन प्रसंस्करण के लिए डेटाबेस से पाठ फ़ाइल में जानकारी निर्यात करने के लिए।

फाइलें पढ़ना और लिखना बुनियादी ऑपरेशन हैं।यदि आपको कोई दस्तावेज़ पढ़ने की आवश्यकता है, तो आपको पहले इसे खोलना होगा। उसके बाद, जितना संभव हो उतना सामग्री पढ़ें, फिर फ़ाइल को बंद करें। किसी दस्तावेज़ को जानकारी लिखने के लिए, आपको पहले इसे खोलना होगा (या, संभवतः, इसे बनाएं अगर यह पहले से ही नहीं बना है)। उसके बाद, आवश्यक डेटा लिखें और पूरा होने पर इसे बंद करें।

अंतर्निहित कार्यों का उपयोग करना भी सुविधाजनक है जो स्वचालित रूप से खुलते हैं और बंद होते हैं। वे PHP5 में उपलब्ध हैं। आपको फ़ाइल विशेषताओं के साथ खुद को भी परिचित करना चाहिए, अर्थात इसके गुण।

वे बता सकते हैं:

  • आकार के बारे में;
  • आखिरी बार संपर्क किए जाने पर जानकारी दें;
  • मालिक के बारे में बताओ, आदि।

PHP में फाइलों के साथ काम करने के लिए सभी बुनियादी विशेषताओं को सीखना सबसे अच्छा है। इससे काम में काफी आसानी होगी।

फ़ाइल इतिहास

आपको यह जानना पड़ सकता है कि फ़ाइल को अंतिम बार कब संपादित किया गया था। इस मामले में, निम्नलिखित कार्य बचाव में आते हैं: fileatime (), filemtime () और filectime ()।

Php प्रोग्रामिंग
<?पीएचपी $ स्वरूप = "डी डी एम वाई जी जी: आई ए"; $ timeA = fileatime ($ फ़ाइल); $ timeM = filemtime ($ फ़ाइल); $ timeC = फ़ाइल का समय ($ फ़ाइल);  गूंज $ फ़ाइल। "देखा गया है"। दिनांक ($ स्वरूप, $ समय)। "<br> <br>"; गूंज $ फ़ाइल। "अंतिम आई-नोड परिवर्तन था"। दिनांक ($ स्वरूप, $ समय)। "<br> <br>"; गूंज $ फ़ाइल। "यह बदल गया था"। दिनांक ($ स्वरूप, $ timeC)। ";"

यहाँ कोड अंतिम एक्सेस टाइमस्टैम्प को पुनः प्राप्त करता है और इसे प्रदर्शित करता है:

  • C: Windowsfile.ini 19 सितंबर, 2018 4:34 बजे देखा गया था।
  • C: Windowsfile.ini को Fr Oct 8, 2018 2:03 am पर संशोधित किया गया था।
  • C: Windowsfil.ini को Tue Dec 16, 2017 4:34 am पर संशोधित किया गया था।

फ़ाइलटाइम () फ़ंक्शन फ़ाइल से जुड़ी विभिन्न जानकारी (उदाहरण के लिए, एक्सेस अधिकार), और फिल्मटाइम () फ़ाइल के परिवर्तन को दिखाता है।

दिनांक () फ़ंक्शन का उपयोग फ़ाइल * समय () फ़ंक्शन द्वारा लौटाए गए यूनिक्स टाइमस्टैम्प को प्रारूपित करने के लिए किया गया था।

फाइल है या नहीं?

यह पता लगाने के लिए कि क्या PHP वास्तव में फाइलों के साथ काम कर रहा है, आप यह देखने के लिए कि क्या यह निर्देशिका है, आप is_file () फ़ंक्शन या is_dir () फ़ंक्शन का उपयोग कर सकते हैं।

<? php गूंज $ फ़ाइल। (is_file ($ फ़ाइल)? "": "नहीं")। "फ़ाइल। <br>"; गूंज $ फ़ाइल। (is_dir ($ फ़ाइल)? "": "नहीं")। "निर्देशिका।";

उदाहरण कोड आउटपुट:

  • C: Windowsfile.ini फ़ाइल।
  • C: Windowsfile.ini एक निर्देशिका नहीं है।

इस प्रकार, आप त्रुटियों से बच सकते हैं और लापरवाही से "एक फ़ाइल नहीं" खोल सकते हैं। PHP में, फ़ाइलों और निर्देशिकाओं के साथ काम करना समान है।

फ़ाइल की अनुमति

किसी फ़ाइल पर काम करने से पहले, आप जांच सकते हैं कि क्या वह पढ़ने योग्य है या लिखने योग्य है। ऐसा करने के लिए, आपको is_writable () और is_readable () फ़ंक्शन का उपयोग करने की आवश्यकता है।

<? php गूंज $ फ़ाइल। (is_readable ($ फ़ाइल)? "": "नहीं")। "पढ़ें। <br>"; गूंज $ फ़ाइल। (is_writable ($ फ़ाइल)? "": "नहीं")। "लिखा जा रहा है।"

ये फ़ंक्शन बूलियन मान लौटाते हैं और समझाते हैं कि क्या ऑपरेशन फ़ाइल पर किया जा सकता है।

कोड निम्न मानों को स्क्रीन पर प्रिंट करेगा:

  • C: Windowsfile.ini पढ़ा जा रहा है।
  • C: Windowsfile.ini नहीं लिखा जा रहा है।

टर्नेरी ऑपरेटर का उपयोग करके, आप संकेत कर सकते हैं कि कोई फ़ाइल उपलब्ध है या नहीं।

फ़ाइल का साइज़

किसी फ़ाइल का आकार पता करने के लिए, filesize () फ़ंक्शन का उपयोग करें। इसे बाइट्स में दिखाया जाएगा।

<? php $ फ़ाइल = "C: Windowsfile.ini"; $ आकार = फ़ाइलें ($ फ़ाइल); गूंज $ फ़ाइल। "एक आकार है"। $ आकार। "बाइट।"
Php के साथ काम करना

फ़ंक्शन निम्न प्रदर्शित करेगा:

  • C: Windowsfile.ini आकार में 510 बाइट्स है।

यहां विंडोज सिस्टम पर फाइल का उपयोग करनाएक बारीकियों पर जोर देता है। पलायन चरित्र के रूप में बैकस्लैश का विशेष अर्थ है। आपको एक और बैकस्लैश जोड़कर इससे बचने की आवश्यकता होगी।

यदि फ़ाइल अभी तक नहीं बनाई गई है, तो filesize () फ़ंक्शन गलत और त्रुटि का संकेत देगा। इसलिए, पहले, फ़ाइल आवश्यक file_exists () कमांड के अस्तित्व के लिए जाँच की जाती है।

<? php $ फ़ाइल = "C: Windowsfile.ini"; अगर (file_exists ($ फ़ाइल)) {$ size = filesize ($ फ़ाइल); गूंज $ फ़ाइल। "एक आकार है"। $ आकार। "बाइट।";} और {$ इको फ़ाइल। " फाइल नहीं मिली।";}

File_exists () चेक को लगभग हमेशा सुरक्षा के लिए शामिल किया जाना चाहिए।

फ़ाइलें पढ़ना

पिछला भाग दिखाता है कि आप कितना कर सकते हैंउन फ़ाइलों के बारे में जानें जिन्हें आप पढ़ने या लिखने से पहले उनके साथ काम कर रहे हैं। अब आप पार्स कर सकते हैं कि फाइल की सामग्री कैसे पढ़ी जाती है।

Ini फाइलों के साथ php में काम करना

PHP फ़ाइलों के साथ काम करने के लिए कार्य आसान बनाते हैं।इस स्थिति में, आपको file_get_contents () की आवश्यकता है। यह फ़ाइल की पूरी सामग्री को एक चर में खोल देगा या फाइल को बंद किए बिना ही पढ़ेगा। यह तब सुविधाजनक होता है जब रिकॉर्डिंग की मात्रा अपेक्षाकृत कम होती है, क्योंकि संग्रह में 1 जीबी डेटा को तुरंत पढ़ने के लिए पीएचपी में हमेशा तर्कसंगत नहीं होता है। ".Ini" फ़ाइलों के साथ काम करना और file_get_contents () फ़ंक्शन नीचे दिखाया गया है।

<? php $ फ़ाइल = "c: windowsfile.ini"; $ file1 = file_get_contents ($ फ़ाइल); गूंज $ file1;

बड़ी फ़ाइलों के लिए या सिर्फ निर्भर करता हैआपकी स्क्रिप्ट की जरूरत है, यह खुद को संभालने के लिए समझदार हो सकता है। ऐसा इसलिए है क्योंकि एक बार फाइल खोलने के बाद, आप इसमें एक विशिष्ट नोट खोज सकते हैं और जितना चाहें उतना डेटा पढ़ सकते हैं। फ़ाइल खोलने के लिए फ़ोपेन () फ़ंक्शन का उपयोग किया जाता है।

<? php $ फ़ाइल = "c: windowsfile.ini"; $ file1 = fopen ($ फ़ाइल, "r");

Fopen () फ़ंक्शन के लिए दो तर्क आवश्यक हैं:

  • खोलने के लिए फ़ाइल;
  • इस मामले में प्रयुक्त मोड पढ़ने के लिए "r" है।

फ़ंक्शन फ़ाइल में एक हैंडल या स्ट्रीम देता है, जो $ फ़ाइल 1 चर में संग्रहीत होता है। फ़ाइल के साथ काम करते समय बाद के सभी कमांड में इसका उपयोग किया जाना चाहिए।

सबसे सामान्य मोड मान
मोड मूल्य कर्सर की स्थिति यदि फ़ाइल मौजूद नहीं है?
आर केवल पढ़ने फ़ाइल की शुरुआत एक त्रुटि देगा
w केवल रिकॉर्डिंग फ़ाइल की शुरुआत एक नया निर्माण करेगा
और केवल रिकॉर्डिंग फाइल समाप्त एक नया निर्माण करेगा

एक बार में एक खुली फ़ाइल एक लाइन से पढ़ने के लिए फॉक्स () फ़ंक्शन का उपयोग किया जा सकता है।

<? php $ फ़ाइल = "c: windowsfile.ini"; $ file1 = fopen ($ फ़ाइल, "r"); do {गूंजना ($ file1)। "<br>";} जबकि (feof ($ file1)); fclose ($ file1);

डू-ए-लूप का उपयोग करना अच्छा हैयह जानने के लिए कि फ़ाइल में कितनी लाइनें हैं। फ़ॉफ़ () फ़ंक्शन जाँचता है कि फ़ाइल पूरी हो गई है या नहीं, और लूप तब तक जारी रहता है जब तक फ़ाइल की स्थिति समाप्त नहीं हो जाती। पढ़ने के समाप्त होने के बाद, दस्तावेज़ को बंद करने के लिए fclose () फ़ंक्शन का उपयोग किया जाता है।

फ़ाइल रिकॉर्डिंग

फ़ाइल के साथ लिखते समय दो आमतौर पर उपयोग किए जाने वाले मोडफाइटाइट () फ़ंक्शन: "डब्ल्यू" और "ए" का उपयोग करना। "W" का अर्थ है कि आपको दस्तावेज़ में लिखने की आवश्यकता है, लेकिन यह पहले किसी भी सामग्री को हटा देगा, "a" - फ़ाइल में पहले से मौजूद डेटा में नया डेटा जोड़ना। सही विकल्प का उपयोग करना सुनिश्चित करें।

Php और ini फाइलों के साथ काम करना

निम्न उदाहरण रिकॉर्डिंग के लिए "a" मोड का उपयोग करेगा।

<? php $ myFile = "files.txt"; $ file1 = fopen ($ myFile, "a"); $ आउटपुट = "केला"। PHP_EOL; fwrite ($ file1, $ आउटपुट); $ आउटपुट = "चीन"। PHP_EOL; fwrite ($ file1, $ आउटपुट); fclose ($ file1);

सबसे पहले, फ़ाइल नाम एक चर को सौंपा गया है, फिरइसे जोड़ने के लिए "एक" मोड में खुलता है। लिखा जाने वाला डेटा चर $ आउटपुट और राइटाइट () को सौंपा गया है, और जानकारी फ़ाइल में संलग्न है। प्रक्रिया को दूसरी पंक्ति को जोड़ने के लिए दोहराया जाता है, फिर दस्तावेज़ को फ़ॉक्लेज़ () का उपयोग करके बंद कर दिया जाता है।

पूर्वनिर्धारित निरंतर PHP_EOL एक नई पंक्ति वर्ण को जोड़ता है जो पाठ फ़ाइलों के साथ मंच PHP पर चलता है।

उपरोक्त कोड को निष्पादित करने के बाद फ़ाइल की सामग्री इस तरह दिखनी चाहिए:

  • केला;
  • चीन।

File_put_contents () फ़ंक्शन भी कर सकते हैंफाइल करने के लिए लिखें। यह एक फ़ाइल नाम, लिखा जाने वाला डेटा और FILE_APPEND स्थिर होता है, यदि उसे डेटा जोड़ने की आवश्यकता होती है (यह डिफ़ॉल्ट फ़ाइल सामग्री को अधिलेखित कर देगा)।

यहाँ ऊपर जैसा ही उदाहरण दिया गया है, लेकिन इस बार file_put_contents () का उपयोग करते हुए।

<? php $ myFile = "files.txt"; file_put_contents ($ myFile, "बनाना"। PHP_EOL); file_put_contents ($ myFile, "China"; PHP_EOL, FILE_APPEND);

आपको इन कार्यों के साथ अक्सर काम करना पड़ता है, इसलिए उन्हें याद रखना सबसे अच्छा है। इसके अलावा, वे एक दिन PHP फ़ाइलों के साथ काम करते समय कुछ जटिल कार्यों को आसान बना सकते हैं।