【问题标题】:PHP: function glob() on Windows - patterns with multiple rangesPHP:Windows 上的函数 glob() - 具有多个范围的模式
【发布时间】:2013-07-31 14:09:44
【问题描述】:

我想要一个目录 ($path) 中的图像列表。我想对文件扩展名进行不区分大小写的研究。下面的代码在 Linux 上运行良好,但在 Windows 上却不行。

foreach ( glob("$path/{*.[jJ][pP][gG],*.[jJ][pP][eE][gG],*.[gG][iI][fF],*.[pP][nN][gG],*.[bB][mM][pP],*.[tT][iI][fF][fF]}", GLOB_BRACE | GLOB_NOCHECK ) as $file ) {

   echo $file;

}

我添加了 GLOB_NOCHECK 标志来查看计算的模式。回复如下:

fotogallery/dir/[gG]
fotogallery/dir/[gG]
fotogallery/dir/[fF]
fotogallery/dir/[gG]
fotogallery/dir/[pP]
fotogallery/dir/[fF]

似乎只考虑了每个逗号分隔表达式的最后一个范围([...])! 为什么会这样?

谢谢! :-)

【问题讨论】:

  • 为什么还要保留范围。 Windows 不区分大小写,因此您可以使用 *.jpg、*.jpeg 等。
  • @DamienOvereem 根据 PHP 手册,glob 区分大小写,即使在 Windows 系统上也是如此。
  • @DamienOvereem 我按照您的建议尝试了,它有效! :-) 太感谢了!!我如何对您的评论进行投票?
  • @RiggsFolly 是的,这是真的!官方文档不准确……奇怪!!
  • 将其添加为答案,以便您可以关闭您的问题。只需点击答案左侧的复选框即可。不客气!

标签: php windows glob


【解决方案1】:

这可能会帮助您解决问题

PHP Manual comment about this sort of issue

【讨论】:

    【解决方案2】:

    由于您在 Windows 平台上,您可以简单地删除范围。只需使用 .jpeg、.jpg 等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-14
      • 1970-01-01
      • 2019-07-18
      • 2020-09-07
      • 1970-01-01
      • 2015-01-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多