PHP में स्ट्रिंग लंबाई की ऊपरी सीमा क्या है?
प्रश्न:
क्या आप इस पर प्रकाश डाल सकते हैं PHP में स्ट्रिंग भंडारण क्षमता की सीमाएं? मैंने इसका आकलन करने का प्रयास किया है, लेकिन मैं अनिश्चित हूं कि मेरे सिस्टम की मेमोरी (2 जीबी) परीक्षण के लिए पर्याप्त है या नहीं। क्या कोई पूर्वनिर्धारित सीमा है? जब कोई स्ट्रिंग इस सीमा से अधिक हो जाती है तो क्या क्रियाएं होती हैं - संघनन या त्रुटि? 64-बिट बिल्ड के लिए. 32-बिट बिल्ड और पुराने संस्करणों के लिए, स्ट्रिंग्स 2GB (2147483647 बाइट्स) के अधिकतम आकार तक पहुंच सकती हैं।
PHP 5.x में, स्ट्रिंग्स को 231-1 बाइट्स तक सीमित किया गया था क्योंकि आंतरिक कोड ने 32-बिट हस्ताक्षरित पूर्णांक में उनकी लंबाई को ट्रैक किया।
अतिरिक्त विचार:आप file_get_contents() जैसे फ़ंक्शन का उपयोग करके संपूर्ण फ़ाइल की सामग्री को लोड कर सकते हैं। हालाँकि, सभी वेरिएबल्स के लिए एक PHP स्क्रिप्ट का समग्र मेमोरी आवंटन व्यक्तिगत स्ट्रिंग वेरिएबल्स की लंबाई को सीमित करता है।
मेमोरी सीमा निर्देश:
php.ini कॉन्फ़िगरेशन फ़ाइल में मेमोरी_लिमिट निर्देश इसे सेट करता है सीमा. इसका डिफ़ॉल्ट PHP 5.2 में 128MB और पुराने संस्करणों में 8MB है। .
Php.ini में मेमोरी_लिमिट को -1 पर सेट करने से जांच अक्षम हो जाती है और आपकी स्क्रिप्ट उतनी मेमोरी का उपयोग करने की अनुमति देती है जितनी ओएस आवंटित करता है (अभी भी व्यावहारिक और सिस्टम-विशिष्ट बाधाओं के अधीन)।
परीक्षण उदाहरण:
निम्नलिखित कोड दर्शाता है कि मेमोरी उपयोग और स्ट्रिंग आवंटन सीमाओं का परीक्षण कैसे करें:
// मेमोरी उपयोग को 1एमबी तक सीमित करें ini_set('मेमोरी_लिमिट', 1024*1024); // बेसिक ऑपरेशन लगभग 768KB का उपयोग करता है प्रिंटफ ("मेमोरी: %d\n", मेमोरी_गेट_यूज(सत्य)); $str = str_repeat('a', 255*1024); इको "255KB की आवंटित स्ट्रिंग\n"; // सभी 1एमबी मेमोरी आवंटित कर दी गई है प्रिंटफ ("मेमोरी: %d\n", मेमोरी_गेट_यूज(सत्य)); // सीमा से अधिक होने पर घातक त्रुटि होती है $str = str_repeat('a', 256*1024); इको "256KB की आवंटित स्ट्रिंग\n"; प्रिंटफ ("मेमोरी: %d\n", मेमोरी_गेट_यूजेज(ट्रू));
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3