doulu1907 2014-01-12 15:23 采纳率: 100%
浏览 39
已采纳

Php file_exist与正则表达式

I am trying to use regex pattern to search for files.

Directory path is:

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

Css filename starts with:

$css_prefix = 'hap_css_';

and ends with:

'.css'

With some amount of unknown characters in between.

I dont know how to construct regex pattern with variable and how to construct file exist with regex.

Thank you!

  • 写回答

1条回答 默认 最新

  • dongsunny1113 2014-01-12 15:25
    关注

    You can use glob():

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

    However, you have to roll your own DirectoryIterator based solution for more complex filtering:

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

    (One could also integrate a RegexIterator):

    The use of scandir() is possible as well:

    $pattern = '/^' . preq_quote($css_prefix) . '.+\\.css$' . '/';
    
    $files = array_filter(scandir($css_dir), function ($filename) {
      return preg_match($pattern, $filename);
    });
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog