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

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

रेगुलर एक्सप्रेशन

$directory = new RecursiveDirectoryIterator(__DIR__);
$flattened = new RecursiveIteratorIterator($directory);

// Make sure the path does not contain "/.Trash*" folders and ends eith a .php or .html file
$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 {
   // Filter files with the help of regex
   public function accept() {
      return ( ! $this->isFile() || preg_match($this->regex, $this->getFilename()));
   }
}
class DirnameFilter extends FilesystemRegexFilter {
   // Filter directories with the help of regex
   public function accept() {
      return ( ! $this->isDir() || preg_match($this->regex, $this->getFilename()));
   }
}

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

$directory = new RecursiveDirectoryIterator(__DIR__);

// Filter out ".Trash*" folders
$filter = new DirnameFilter($directory, '/^(?!\.Trash)/');

// Filter PHP/HTML files
$filter = new FilenameFilter($filter, '/\.(?:php|html)$/');

foreach(new RecursiveIteratorIterator($filter) as $file) {
   echo $file . PHP_EOL;
}

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

$files = new RecursiveIteratorIterator($filter);
$files->setMaxDepth(1); // Two levels, the parameter is zero-based.
foreach($files as $file) {
   echo $file . PHP_EOL;
}

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

    सामग्री: आवर्धक Windows 10 अवलोकन Windows 10 पर मैग्निफ़ायर कैसे चालू करें? विंडोज 10 पर मैग्निफायर कैसे बंद करें? विंडोज 10 पर मैग्निफायर व्यू कैसे बदलें? Windows 10 पर मैग्निफ़ायर कैसे कस्टमाइज़ करें? आवर्धक Windows 10 अवलोकन मैग्निफायर विंडोज 10 पर एक सिस्टम एप्लिकेशन है जो आपको आंशिक या

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

    उदाहरण में आने से पहले, हमें पता होना चाहिए कि एंड्रॉइड में व्यू पेजर क्या है। एंड्रॉइड में सपोर्ट लाइब्रेरी में पाया गया पेजर देखें, व्यू पेजर का उपयोग करके हम टुकड़ों को बदल सकते हैं। यह उदाहरण दर्शाता है कि एंड्रॉइड व्यू पेजर का उपयोग कैसे करें। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बन

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

    उदाहरण में आने से पहले, हमें पता होना चाहिए कि android में checktextview क्या है। चेक टेक्स्टव्यू को टेक्स्टव्यू द्वारा विस्तारित किया गया है और इसमें चेक करने योग्य इंटरफ़ेस है। Checktextview का उपयोग करके हम यह पता लगा सकते हैं कि उपयोगकर्ता को टेक्स्टव्यू पर क्लिक किया गया है या नहीं। यह उदाहरण