如何使用php搜索文件夹中的文件?

时间:2018-01-25 13:51:02

标签: php glob scandir readdir opendir

我有一个名为allfiles的文件夹,此文件夹中有一些文件,例如

 1212-how-to-sddk-thosd.html
 3454-go-to-dlkkl-sdf.html
 0987-sfda-asf-fdf-12331.html
 4789-how-to-fdaaf-65536.html

我使用scandir列出所有文件,现在我需要使用关键字查找文件,示例to-dlkkl是关键字,我将获得文件3454-go-to-dlkkl-sdf.html。< / p>

Glob似乎不起作用,并且opendir和readdir效果不好,有什么想法吗?

4 个答案:

答案 0 :(得分:1)

使用循环foreachstrpos函数:

$files = scandir('allfiles');
foreach ($files as $file) {
    if (strpos('to-dlkkl', $file) !== false) {
         //file found
    }
}

答案 1 :(得分:0)

您可以使用strstr获取实际文件

$allfiles = scandir('./');
foreach ($allfiles as $file) {
    if (strstr($file, 'to-dlkkl')) {
        echo "file found"; //do what you want
    }
}

答案 2 :(得分:0)

如果您要搜索目录下的特定文件,则可以使用preg_match()

<?php
  if ($handle = opendir('/var/www/html/j')) { // here add your directory
  $keyword = "index.php"; // your keyword
    while (false !== ($entry = readdir($handle))) {
        // (preg_match('/\.txt$/', $entry)) {
        if (preg_match('/'.$keyword.'/i', $entry)) {
            echo "$entry\n";
        }
    }

    closedir($handle);
}

?>

答案 3 :(得分:0)

我想知道为什么glob()函数不起作用?

以下代码应该可以正常工作,

$existing_dir = getcwd();
// path to dir
chdir( '/var/www/allfiles/' );

foreach( glob( '*to-dlkkl*.html' ) as $html_file ) {
    echo $html_file . '<br />';
}

chdir( $existing_dir );