我知道我能做到这一点......
glob('/dir/somewhere/*.zip');
Run Code Online (Sandbox Code Playgroud)
...以获取所有文件结尾.zip,但有没有办法返回所有非 ZIP 文件?
或者我应该迭代并过滤掉那个扩展名?
Atl*_*tli 25
你可以尝试这样的事情:
$all = glob('/dir/somewhere/*.*');
$zip = glob('/dir/somewhere/*.zip');
$remaining = array_diff($all, $zip);
Run Code Online (Sandbox Code Playgroud)
虽然,使用Pascal提到的其他方法之一可能更有效.
sal*_*the 16
一个快速的方法是glob()用于所有内容并使用preg_grep()过滤掉您不想要的文件.
preg_grep('#\.zip$#', glob('/dir/somewhere/*'), PREG_GREP_INVERT)
Run Code Online (Sandbox Code Playgroud)
另请参阅PHP中的文件匹配全局模式
这种模式将起作用:
glob('/dir/somewhere/*.{?,??,[!z][!i][!p]*}', GLOB_BRACE);
Run Code Online (Sandbox Code Playgroud)
它在/ dir/somewhere /以一个点后面的任何一个中找到所有内容
?)??)[!z][!i][!p]*)开头的东西我不认为glob可以做一个"非通配符"......
我看到至少有两个其他解决方案:
opendir/ readdir/closedirDirectoryIterator; 也许你可以把它与一些结合起来FilterIterator?| 归档时间: |
|
| 查看次数: |
8331 次 |
| 最近记录: |