एसपीएल मानक PHP लाइब्रेरी के लिए खड़ा है।
SplFileObject
आंतरिक रूप से fopen
के साथ बनाए गए स्ट्रीम संसाधन का उपयोग करता है। तो आपका प्रश्न यह होना चाहिए कि SplFileObject
का उपयोग करना या स्ट्रीम संसाधन के साथ सीधे काम करना दिलचस्प क्यों है?
SplFileObject
पेशेवरों:
SplFileObject
हेरफेर फाइल करने के लिए एक OOP दृष्टिकोण प्रदान (fread
पीएचपी 5.5.11 में जोड़ा गया है, fputcsv
पीएचपी 5.4 में जोड़ा गया)।
SplFileObject
आपकी फ़ाइल को बेहतर तरीके से कुशल बनाने के लिए अन्य SPL Iterator के उपयोग को सक्षम करने के लिए कई उपयोगी PHP इंटरफेस लागू करता है।
SplFileObject
मुख्य नुकसान है कि वह अपने आंतरिक धारा संसाधन के लिए उपयोग नहीं देता है। PHP फ़ंक्शन मूल रूप से स्ट्रीम संसाधन के साथ सीधे काम करने के लिए बनाए गए थे। तथ्य यह है कि SplFileObject
अपने स्वयं के आंतरिक धारा संसाधन के लिए उपयोग नहीं देता है यह कई पीएचपी कार्यों में बनाया के साथ व्यर्थ:
php stream filters उपयोग SplFileObject
साथ गरीब है।आपको php://filter
मेटा रैपर पर निर्भर होना चाहिए, जो उनकी उपयोगिता को सीमित करता है।
cURL
साथ SplFileObject
का उपयोग कर
यह निष्कर्ष निकालने के लिए ऊपर SplFileObject
और एक धारा संसाधन परस्पर विनिमय नहीं कर रहे हैं संभव नहीं है। SplFileObject
का उपयोग किया कुछ भी एक धारा संसाधन और एक SplFileObject
userland कार्यान्वयन का प्रयोग कर प्राप्त किया जा सकता है, लेकिन रिवर्स सही नहीं है।
तो fopen
द्वारा बनाए गए स्ट्रीम संसाधन का उपयोग कर उपयोग मामले के आधार पर SplFileObject
पर निर्भर होने से बेहतर विकल्प हो सकता है।
करीबी विधि के लिए, आपको एक की आवश्यकता नहीं है ... आपको केवल आंतरिक स्ट्रीम संसाधन को रिलीज़/बंद करने के लिए हैंडलर को शून्य पर सेट करने की आवश्यकता है।
$file = new SplFileObject('/path/to/my/file'); //the file handler is created
$file = null; //the file handler is closed
आप यहां [spl] टैग का उपयोग करना चाहेंगे। जो लोग इसका अनुसरण करते हैं वे आमतौर पर बहुत उत्साही और जानकार होते हैं। – goat
@rambocoder हो गया –