PHP में, मैं कैसे जांच करूं कि स्ट्रीम संसाधन (या फ़ाइल पॉइंटर, हैंडल, या जो भी आप उन्हें कॉल करना चाहते हैं) या तो पठनीय या लिखने योग्य है? उदाहरण के लिए, यदि आपको ऐसी स्थिति का सामना करना पड़ रहा है जहां आप संसाधन खोले या बनाए गए तरीके के बारे में कुछ नहीं जानते हैं, तो आप यह कैसे जांच सकते हैं कि यह पठनीय है या नहीं? और आप कैसे लिखते हैं कि यह लिखने योग्य है या नहीं?कैसे जांचें कि कोई PHP स्ट्रीम संसाधन पठनीय या लिखने योग्य है या नहीं?
मैंने जो परीक्षण किया है उसके आधार पर (केवल PHP 5.3.3 का उपयोग करके नियमित पाठ फ़ाइलों के साथ), fread()
संसाधन को पठनीय नहीं होने पर किसी भी स्तर पर किसी भी त्रुटि को फेंक नहीं देता है। यह सिर्फ एक खाली स्ट्रिंग देता है, लेकिन यह एक खाली फ़ाइल के लिए भी करता है। और आदर्श रूप में, यह जांच करना बेहतर होगा कि संसाधन को संशोधित न करें। परीक्षण करना यदि कोई संसाधन इसे पढ़ने की कोशिश करके पठनीय है तो पॉइंटर की स्थिति बदल देगा।
इसके विपरीत, fwrite()
संसाधन लिखने योग्य नहीं होने पर किसी भी स्तर पर किसी भी त्रुटि को फेंक नहीं देता है। यह सिर्फ शून्य देता है। यह थोड़ा और उपयोगी है, क्योंकि यदि आप फ़ाइल में बाइट्स की एक निश्चित संख्या लिखने की कोशिश कर रहे थे और fwrite()
शून्य लौटाता है, तो आप जानते हैं कि कुछ गलत हो गया है। लेकिन फिर भी, यह एक आदर्श तरीका नहीं है, क्योंकि यह जानना बहुत बेहतर होगा कि इससे लिखने की कोशिश करने से पहले लिखने की आवश्यकता है या नहीं और यह देखने में विफल रहता है कि यह विफल हो गया है या नहीं।
इसके अलावा, आदर्श रूप से, जांच किसी भी प्रकार के स्ट्रीम संसाधन पर काम नहीं करनी चाहिए, न केवल फाइलें।
क्या यह संभव है? क्या ऐसा कुछ भी मौजूद है? मैं कुछ उपयोगी खोजने में असमर्थ रहा हूं। आपके जवाब के लिए पहले से ही धन्यवाद।
, दोनों [ ' फ्रेड() '] (http://php.net/fread) और [' fwrite() '] (http://php.net/fwrite) अपने संबंधित दस्तावेज पृष्ठ के अनुसार विफलता पर 'बूल (झूठी)' वापसी .... लेकिन यह PHP 5.3.5 में नहीं होता है। –