我想使用php函数glob()来获取遵循这种模式的文件:
[arbitrary-text-code]-[any number].jpg
我似乎找到了这样做的方法......还有,还有另一种方法吗?
感谢您的帮助!
答案 0 :(得分:1)
[any number]
的范围是否随意?如果是,我认为您最好的选择是preg_filter()
:
$text = '.+';
$number = '\d+';
$regex = $text . '-' . $number . '[.]jpg$';
$result = preg_filter('~' . $regex . '~i', '$0', glob('/your/path/*.jpg');
但是,如果[any number]
有一个简单的小范围(例如[0-9]
)GLOB_BRACE
是你的朋友:
$result = glob('/your/path/*-{0,1,2,3,4,5,6,7,8,9}.jpg', GLOB_BRACE);
PS:我没有测试过以下内容,我不确定它是否有效,但是值得一试。
如果您的[any number]
位于0
和99
之间,则此可能会工作:
$result = glob('/your/path/*-{0,1,2,3,4,5,6,7,8,9}{,0,1,2,3,4,5,6,7,8,9}.jpg', GLOB_BRACE);
同样,对于0
到999
:
$result = glob('/your/path/*-{0,1,2,3,4,5,6,7,8,9}{,0,1,2,3,4,5,6,7,8,9}{,0,1,2,3,4,5,6,7,8,9}.jpg', GLOB_BRACE);
你明白了。这里的诀窍是后面的括号上的空选项 - 让我知道它是怎么回事。
GLOB_BRACE
- 将{a,b,c}扩展为 匹配'a','b'或'c'。
答案 1 :(得分:0)