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}),全局大括号)可能会有所帮助。