"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > सबफ़ोल्डर्स में एक विशिष्ट फ़ाइल की खोज के लिए मैं ग्लोब का उपयोग कैसे कर सकता हूं?

सबफ़ोल्डर्स में एक विशिष्ट फ़ाइल की खोज के लिए मैं ग्लोब का उपयोग कैसे कर सकता हूं?

2025-03-13 को पोस्ट किया गया
ब्राउज़ करें:417

] हालाँकि, PHP का ग्लोब फ़ंक्शन इस चुनौती को संबोधित करने के लिए एक बहुमुखी समाधान प्रदान करता है। जड़ से परे अपनी पहुंच का विस्तार करने के लिए, निम्नलिखित दो दृष्टिकोणों पर विचार करें:

How Can I Use glob to Search for a Specific File in Subfolders?

1। RGLOB फ़ंक्शन के साथ पुनरावर्ती ग्लोब:

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