কম্পিউটার টিউটোরিয়াল

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; }

উপরোক্ত কোড ব্যবহার করে ২ লেভেল ডিপ স্ক্যানিং

$files = new RecursiveIteratorIterator($filter); $files->setMaxDepth(1); // দুটি লেভেল, প্যারামিটার জিরো-বেসড। foreach($files as $file) {    echo $file . PHP_EOL; }

  1. উইন্ডোজে পাইথন ব্যবহার করার পূর্ণ নির্দেশিকা

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

  3. অ্যান্ড্রয়েড ViewPager ব্যবহার করার পদ্ধতি

  4. অ্যান্ড্রয়েডে CheckedTextView কীভাবে ব্যবহার করবেন?