繁体   English   中英

在目录中查找文件

[英]finding files in a dir

我有一个包含很多文件的目录:

pic_1_79879879879879879.jpg
pic_1_89798798789798789.jpg
pic_1_45646545646545646.jpg
pic_2_12345678213145646.jpg
pic_3_78974565646465645.jpg
etc...

我只需要列出pic_1_文件。 知道我怎么办? 提前致谢。

使用glob()函数

foreach (glob("directory/pic_1_*") as $filename) {
  echo "$filename";
}

只需将glob调用中的directory更改为正确的路径即可。

这样做可以一次性完成,而不是抓取文件列表然后过滤它们。

opend dir函数可以帮到你

$dir ="your path here";

$filetoread ="pic_1_";
    if (is_dir($dir)) {
        if ($dh = opendir($dir)) {
            while (($file = readdir($dh)) !== false) {
               if (strpos($file,$filetoread) !== false)
                echo "filename: $file : filetype: " . filetype($dir . $file) . "\n";
            }
            closedir($dh);
        }
    }

祝你好运看php.net opendir

这就是glob()的用途:

glob - 查找与模式匹配的路径名

例:

foreach (glob("pic_1*.jpg") as $file)
{
    echo $file;
}

使用scandir列出目录中的所有文件,然后使用preg_grep获取与您要查找的模式匹配的文件列表。

这是手册中的一个样本

http://nz.php.net/manual/en/function.readdir.php

<?php
if ($handle = opendir('.')) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
            echo "$file\n";
        }
    }
    closedir($handle);
}
?>

您可以修改该代码以测试文件名,看看它是否以pic_1_开头,使用类似的东西

if (substr($file, 0, 6) == 'pic_1_')

substr的手动参考

http://nz.php.net/manual/en/function.substr.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM