我有一个sitemaps目录,所有目录都以数字结尾.
我有一个自动站点地图生成器脚本,需要使用glob计算文件夹中的所有站点地图.
目前我被困在这里.
我需要的是计算所有包含数字的站点地图文件,所以我不计算那些没有任何数字的文件.
例如,在我的root中我有一个sitemap.xml文件,然后我还有sitemap1.xml,sitemap2.xml,sitemap3.xml等...
当文件名包含像"sitemap1.xml"这样的数字时,我需要使用glob才返回true.
这可能吗?
$nr_of_sitemaps = count(glob(Sitemaps which contains numbers in their filenames));
Run Code Online (Sandbox Code Playgroud)
谢谢
对于以<digit>.xml您结尾的文件的glob,可以使用如下模式:
*[0-9].xml
Run Code Online (Sandbox Code Playgroud)
因此,为了计算匹配,PHP可能看起来像:
$count = count(glob('/path/to/files/*[0-9].xml'));
Run Code Online (Sandbox Code Playgroud)
如果你想要匹配文件的超精细控制(比glob可以给出的更多),你可以使用一般模式然后preg_grep用来过滤生成的数组到你想要的.
$count = count(
preg_grep(
'#(?:^|/)sitemap\d{1,3}\.xml$#',
glob('/path/to/files/sitemap*.xml')
)
);
Run Code Online (Sandbox Code Playgroud)
另见:http://cowburn.info/2010/04/30/glob-patterns/
| 归档时间: |
|
| 查看次数: |
1872 次 |
| 最近记录: |