Php file_exist与正则表达式

时间:2014-01-12 15:23:08

标签: php regex

我正在尝试使用正则表达式搜索文件。

目录路径是:

$css_dir = MY_PLUGIN_DIR.'/source/css/';

Css文件名以:

开头
$css_prefix = 'hap_css_';

并以:

结束
'.css'

中间有一些未知字符。

我不知道如何使用变量构造正则表达式模式以及如何使用正则表达式构造文件。

谢谢!

1 个答案:

答案 0 :(得分:3)

您可以使用glob()

$files = glob($css_dir . $css_prefix . '*.css');

但是,您必须推出自己的DirectoryIterator解决方案,以进行更复杂的过滤:

$dir = new DirectoryIterator($css_dir);
$pattern = '/^' . preg_quote($css_prefix) . '.+\\.css$' . '/';
foreach ($dir as $fileInfo) {
  if (preg_match($pattern, $fileInfo->getBaseName())) {
    // match!
  }
}

(还可以整合RegexIterator):

也可以使用scandir()

$pattern = '/^' . preq_quote($css_prefix) . '.+\\.css$' . '/';

$files = array_filter(scandir($css_dir), function ($filename) {
  return preg_match($pattern, $filename);
});