কম্পিউটার

কিভাবে পিএইচপি তে 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. উইন্ডোজে পাইথন কীভাবে ব্যবহার করবেন

  2. উইন্ডোজ 10 এ ম্যাগনিফায়ার কীভাবে ব্যবহার করবেন

  3. অ্যান্ড্রয়েড ভিউপেজার কীভাবে ব্যবহার করবেন?

  4. অ্যান্ড্রয়েডে চেকটেক্সটভিউ কীভাবে ব্যবহার করবেন?