Php &引用;“全球化”;一个只获取那些数字命名的文件?

Php &引用;“全球化”;一个只获取那些数字命名的文件?,php,pattern-matching,Php,Pattern Matching,我想使用php函数glob()来获取遵循以下模式的文件: [arbitrary-text-code]-[any number].jpg 我似乎能找到这样做的方法。。还有,还有别的办法吗 谢谢你的帮助 我认为没有一种方法可以将重复的模式像任何数字一样进行一次或多次的全局搜索,因此至少你必须全局搜索类似于'*-*[0123456789].jpg',然后再搜索preg_grep或它返回的数组中的某个内容 我曾经退出过Symfony(用法——它已经过时了,但API没有太大变化)要做到这一点,我不必编写

我想使用php函数glob()来获取遵循以下模式的文件:

[arbitrary-text-code]-[any number].jpg
我似乎能找到这样做的方法。。还有,还有别的办法吗


谢谢你的帮助

我认为没有一种方法可以将重复的模式像任何数字一样进行一次或多次的全局搜索,因此至少你必须全局搜索类似于
'*-*[0123456789].jpg'
,然后再搜索
preg_grep
或它返回的数组中的某个内容


我曾经退出过Symfony(用法——它已经过时了,但API没有太大变化)要做到这一点,我不必编写我自己的解决方案:-)我假设PEAR或Zend框架中可能有类似的东西,但如果你已经在使用它们中的一个。

我认为没有办法将
glob
像任何数字一样重复一次或多次,所以至少你必须像
'*-*[0123456789].jpg'
然后
preg_grep
或它返回的数组上的某个内容


我过去曾退出Symfony(用法-它已经过时了,但API没有太大变化)来做类似的事情,这样我就不必编写自己的解决方案:-)我假设PEAR或Zend框架中可能有类似的东西,但如果您已经在使用它们中的一个。

是否任意指定了
[任何数字]
的范围?如果是,我认为您最好的选择是:

但是,如果
[任何数字]
有一个简单的小范围(如
[0-9]
地球支架
是您的朋友:

$result = glob('/your/path/*-{0,1,2,3,4,5,6,7,8,9}.jpg', GLOB_BRACE);

PS:我还没有测试以下内容,我不确定它是否有效,但值得一试。


如果您的
[任何数字]
介于
0
99
之间,这可能会起作用:

同样,对于
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);
你明白了。这里的诀窍是后一个大括号上的空选项-让我知道它是如何进行的


大括号
-将{a,b,c}展开为 匹配“a”、“b”或“c”


[任何数字]
的范围是任意的吗?如果是,我认为您最好的选择是:

但是,如果
[任何数字]
有一个简单的小范围(如
[0-9]
地球支架
是您的朋友:

$result = glob('/your/path/*-{0,1,2,3,4,5,6,7,8,9}.jpg', GLOB_BRACE);

PS:我还没有测试以下内容,我不确定它是否有效,但值得一试。


如果您的
[任何数字]
介于
0
99
之间,这可能会起作用:

同样,对于
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);
你明白了。这里的诀窍是后一个大括号上的空选项-让我知道它是如何进行的


大括号
-将{a,b,c}展开为 匹配“a”、“b”或“c”


它使我在许多项目中的工作更轻松,symfony和其他:-)它使我在许多项目中的工作更轻松,symfony和其他:-)感谢您的详细回复!这对我帮助很大@杰夫:没问题!您使用了哪种方法?感谢您的详细回复!这对我帮助很大@杰夫:没问题!你用了哪种方法?