Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> PHP

PHP में RegexIterator का उपयोग कैसे करें?


नियमित अभिव्यक्ति

$directory = new RecursiveDirectoryIterator(__DIR__); 
$flattened = new RecursiveIteratorIterator($directory); 
// सुनिश्चित करें कि पथ में "/.Trash*" फ़ोल्डर्स नहीं हैं और .php या .html फ़ाइल के साथ समाप्त होता है 
$files = new RegexIterator($flattened, '#^(?:[A-Z]:)?(?:/(?!\.Trash)[^/]+)+/[^/]+\.(?:php|html)$#Di'); 
foreach ($files as $file) { 
    echo $file . PHP_EOL; 
}

फ़िल्टर्स का उपयोग करना

एक बेस क्लास उस रेगेक्स को रखती है जिसे फ़िल्टर के साथ उपयोग करने की आवश्यकता होती है।

क्लासेस जो इसे एक्सटेंड करेंगी। RecursiveRegexIterator को एक्सटेंड किया जाता है।

abstract class FilesystemRegexFilter extends RecursiveRegexIterator { 
    protected $regex; 
    public function __construct(RecursiveIterator $it, $regex) { 
        $this->regex = $regex; 
        parent::__construct($it, $regex); 
    } 
}

वे बेसिक फ़िल्टर्स हैं और क्रमशः फ़ाइल और डायरेक्टरी नाम के साथ काम करते हैं।

class FilenameFilter extends FilesystemRegexFilter { 
    // रेगेक्स की मदद से फ़ाइलों को फ़िल्टर करें 
    public function accept() { 
        return (!$this->isFile() || preg_match($this->regex, $this->getFilename())); 
    } 
} 
class DirnameFilter extends FilesystemRegexFilter { 
    // रेगेक्स की मदद से डायरेक्टरीज़ को फ़िल्टर करें 
    public function accept() { 
        return (!$this->isDir() || preg_match($this->regex, $this->getFilename())); 
    } 
}

नीचे दिया गया कोड डायरेक्टरी सामग्री पर पुनरावृति करता है। ट्रैश फ़ोल्डर्स को फ़िल्टर आउट किया जाता है और केवल PHP और HTML फ़ाइलें रखी जाती हैं।

$directory = new RecursiveDirectoryIterator(__DIR__); 
// ".Trash*" फ़ोल्डर्स को फ़िल्टर आउट करें 
$filter = new DirnameFilter($directory, '/^(?!\.Trash)/'); 
// PHP/HTML फ़ाइलों को फ़िल्टर करें 
$filter = new FilenameFilter($filter, '/\.(?:php|html)$/'); 
foreach (new RecursiveIteratorIterator($filter) as $file) { 
    echo $file . PHP_EOL; 
}

उपरोक्त कोड का उपयोग करके 2 लेवल गहरा स्कैन करना

$files = new RecursiveIteratorIterator($filter); 
$files->setMaxDepth(1); // दो लेवल, पैरामीटर शून्य-आधारित है। 
foreach ($files as $file) { 
    echo $file . PHP_EOL; 
}

  1. विंडोज 10 में मैग्निफायर (Magnifier) का उपयोग कैसे करें विंडोज 10 में मैग्निफायर (Magnifier) का उपयोग कैसे करें

    विंडोज 10 मैग्निफायर अवलोकन मैग्निफायर विंडोज 10 पर एक सिस्टम एप्लिकेशन है जो आपको डिस्प्ले स्क्रीन के पूरे या किसी हिस्से को ज़ूम इन करने में सक्षम बनाता है ताकि आप शब्दों या छवियों को स्पष्ट रूप से देख सकें। यह निर्विवाद है कि विंडोज 10 पर डिस्प्ले स्क्रीन को बड़ा करने की आवश्यकता कई स्थितियों में

  1. Android ViewPager का उपयोग कैसे करें? Android ViewPager का उपयोग कैसे करें?

    परिचय उदाहरण में जाने से पहले, हमें पता होना चाहिए कि Android में ViewPager क्या है। ViewPager Android में सपोर्ट लाइब्रेरी में पाया जाता है, ViewPager का उपयोग करके हम फ्रैगमेंट्स को स्विच कर सकते हैं। यह उदाहरण दर्शाता है कि Android ViewPager का उपयोग कैसे करें। चरण 1: नया प्रोजेक्ट बनाएं Androi

  1. एंड्रॉइड में CheckedTextView का उपयोग कैसे करें? एंड्रॉइड में CheckedTextView का उपयोग कैसे करें?

    एंड्रॉइड में CheckedTextView का उपयोग CheckedTextView TextView का विस्तार है जो Checkable इंटरफ़ेस को लागू करता है, जिससे यह चेक करने योग्य स्थिति बनाए रख सकता है और चेक मार्क प्रदर्शित कर सकता है। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: लेआउट फ़ाइल (activity