PHP
 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. Android ViewPagerの使い方は?

    例に入る前に、Androidのビューページャーとは何かを知っておく必要があります。 Androidのサポートライブラリにあるビューページャー。ビューページャーを使用してフラグメントを切り替えることができます。 この例は、Androidビューページャーの使用方法を示しています。 ステップ1 − Android Studioで新しいプロジェクトを作成し、[ファイル]⇒[新しいプロジェクト]に移動して、新しいプロジェクトを作成するために必要なすべての詳細を入力します。 ステップ2 −build.gradleに次のコードを追加します。 apply plugin: 'com.android

  2. アンドロイドでchecktextviewを使用する方法は?

    例に入る前に、Androidのchecktextviewが何であるかを知っておく必要があります。チェックtextviewはtextviewによって拡張され、チェック可能なインターフェイスが含まれています。 Checktextviewを使用すると、ユーザーがtextviewをクリックしたかどうかに関係なく、それを見つけることができます。 この例は、Androidでchecktextviewを使用する方法について示しています。 ステップ1 − Android Studioで新しいプロジェクトを作成し、[ファイル]⇒[新しいプロジェクト]に移動して、新しいプロジェクトを作成するために必要なすべて