] हालाँकि, PHP का ग्लोब फ़ंक्शन इस चुनौती को संबोधित करने के लिए एक बहुमुखी समाधान प्रदान करता है। जड़ से परे अपनी पहुंच का विस्तार करने के लिए, निम्नलिखित दो दृष्टिकोणों पर विचार करें:
RGLOB फ़ंक्शन पुनरावर्ती खोजों को सक्षम करके ग्लोब की क्षमताओं को बढ़ाता है। यह पुनरावर्ती रूप से उपनिर्देशिकाओं में उतरता है, सभी मिलान फ़ाइलों को वापस करता है। उदाहरण के लिए:
फ़ंक्शन rglob ($ पैटर्न, $ झंडे = 0) { $ फाइलें = ग्लोब ($ पैटर्न, $ झंडे); foreach (ग्लोब (dirname ($ पैटर्न)। $ फ़ाइलें = array_merge ([], ... [$ फ़ाइलें, rglob ($ dir। "/"। बेसनेम ($ पैटर्न), $ झंडे)]); } $ फाइलें लौटाएं; } $ परिणाम = rGlob ($ _ सर्वर ['document_root']। '/test.zip'); var_dump ($ परिणाम);
2। पुनरावर्ती निर्देशिका Iterator:
recursivedirectoryiterator वर्ग पुनरावर्ती फ़ाइल खोज के लिए एक और विकल्प है। यह एक अधिक लचीला और वस्तु-उन्मुख दृष्टिकोण प्रदान करता है:
function rglob($pattern, $flags = 0) { $files = glob($pattern, $flags); foreach (glob(dirname($pattern).'/*', GLOB_ONLYDIR|GLOB_NOSORT) as $dir) { $files = array_merge([], ...[$files, rglob($dir . "/". basename($pattern), $flags)]); } return $files; } $result = rglob($_SERVER['DOCUMENT_ROOT'] . '/test.zip'); var_dump($result);
दोनों दृष्टिकोण प्रभावी रूप से निर्दिष्ट फ़ाइल के लिए सबफ़ोल्डर्स को स्कैन कर सकते हैं। वह चुनें जो आपकी परियोजना की आवश्यकताओं और वरीयताओं के अनुरूप हो।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3