1

glob を使用して、ディレクトリ内の特定のファイルを取得しようとしています。

私のパターンは

foreach(glob($root . "../test/te[0-9]{2}.xml") as $filename){
  echo $filename;
}

ファイルは

0051_001.xml
0071_001_as01.xml
0485_001_te01.xml
0485_001_te02.xml
0485_001_teh03.xml

何も出力しません。

私はしたいだけですが、残りはしたくありませんteh01te03.xmlパタパタの何が問題なのかわかりません。誰かがそれについて私を助けることができますか? 本当にありがとう!

4

1 に答える 1

1

globをサポートしていない[0-9]{2}場合は、次のように記述する必要があります[0-9][0-9]

foreach(glob($root . "../test/te[0-9][0-9].xml") as $filename){
  echo $filename;
}

ファイルには、次を使用する必要があります。

foreach(glob($root . "../test/[0-9][0-9][0-9][0-9]_[0-9][0-9][0-9]_te[0-9][0-9].xml") as $filename){
  echo $filename;
}

または、正規表現チェックを追加することもできます:

foreach(glob($root . "../test/*.xml") as $filename){
  if (preg_match('/_te\d{2}\.xml$/', $filename, $matches)){
     echo $filename;
  }
}
于 2013-03-21T00:42:13.127 に答える