我有像fm.txt fm_1.txt, fm_2.txt
这样的文件名。运行脚本时,我需要获取以fm开头的所有文件的计数。
$files = glob(PATH_DIR.'_*.txt');
echo count($files);
显示我{0}的count
。
$files = glob(PATH_DIR.'*.txt');
echo count($files);
显示我的数量为1。
实际上1有3个文件假设fm.txt, fm_1.txt, fm_2.txt
。我想第二个代码段仅显示fm.txt
个计数,如何修改该行以获取_
的文件的连续数
答案 0 :(得分:0)
您可以使用readdir函数http://php.net/manual/en/function.readdir.php
$count = 0;
if ($handle = opendir(PATH_DIR)) {
while (false !== ($entry = readdir($handle))) {
if ( strpos($entry, 'fm') === 0 ){
++$count;
}
}
closedir($handle);
}
echo $count;
答案 1 :(得分:0)
假设您在当前目录中具有以下结构:
test.php
test
├── fm_1.txt
├── fm_2.txt
└── fm.txt
<强> test.php的强>
<?php
$dir = __DIR__ . '/test';
$files = glob("${dir}/fm{,_[0-9]*}.txt", GLOB_BRACE);
var_dump($files);
然后php test.php
将产生类似于以下内容的输出:
array(3) {
[0]=>
string(28) "/home/ruslan/tmp/test/fm.txt"
[1]=>
string(30) "/home/ruslan/tmp/test/fm_1.txt"
[2]=>
string(30) "/home/ruslan/tmp/test/fm_2.txt"
}
由于大括号扩展而导致的glob expressoin fm{,_[0-9]*}.txt
扩展为以下模式:
fm.txt
fm_[0-9]*.txt
因为大括号中列出了两个项目:空值和_[0-9]*
。
答案 2 :(得分:0)
你需要告诉glob函数你想要以fm开头的文件,所以试试这个:
glob(PATH_TO_YOUR_DIR。&#34; fm * .txt&#34;)