Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
globregex模式-PHP_Php_Regex_Glob - Fatal编程技术网

globregex模式-PHP

globregex模式-PHP,php,regex,glob,Php,Regex,Glob,我有一个文件夹,有多个图像,但我对标题如下的图像感兴趣:“images\u 123456\u nature\u XL.jpg,images\u 458599\u 3d\u L.jpg,images\u 065455\u animals\u XL.jpg”。因此,请尝试如下所示的glob功能: $images = glob($value."/^Images_(\d+)_([a-zA-Z]+)_([A-Z]+).{jpg,png,gif}", GLOB_BRACE); 但它似乎不起作用。有什么帮助

我有一个文件夹,有多个图像,但我对标题如下的图像感兴趣:
“images\u 123456\u nature\u XL.jpg,images\u 458599\u 3d\u L.jpg,images\u 065455\u animals\u XL.jpg”
。因此,请尝试如下所示的
glob
功能:

$images = glob($value."/^Images_(\d+)_([a-zA-Z]+)_([A-Z]+).{jpg,png,gif}", GLOB_BRACE);
但它似乎不起作用。有什么帮助吗!非常感谢。

不需要正则表达式,它需要简单的模式,只需要用任何东西代替*小丑,还有?由一个单一的字符

您可以尝试以下方法:

$files = array_filter(glob('*.{jpg,png,gif}', GLOB_BRACE), function($file) {
  return preg_match('/^Images_(\d+)_([a-zA-Z]+)_([A-Z]+)\.(jpg|png|gif)$/', basename($file));
});

就内存而言,这并不是很有效(因为glob()会在过滤之前返回所有文件),但这至少是可行的。

glob不接受regex。它需要一个面具<代码>全局($value./Images.*{jpg,png,gif}),全局大括号)可能会有所帮助。