PHP file_exists and wildcard

后端 未结 4 1261
孤街浪徒
孤街浪徒 2020-12-03 00:20

Is there a way to write the PHP file_exists function so that it searches a directory for a file with an arbitrary extension. For instance, suppose I knew that a file were c

相关标签:
4条回答
  • 2020-12-03 00:51

    As long as file_exists returns a BOOLEAN I wrote this small function that accepts a search string with * to look for files... Example:

        searchForFile("temp*");
    
        function searchForFile($fileToSearchFor){
            $numberOfFiles = count(glob($fileToSearchFor));
            if($numberOfFiles == 0){ return(FALSE); } else { return(TRUE);}
        }
    
    0 讨论(0)
  • 2020-12-03 01:03

    As of PHP5.3, you can also use the GlobIterator to search a directory with wildcards:

    $it = iterator_to_array(
        new GlobIterator('/some/path/*.pdf', GlobIterator::CURRENT_AS_PATHNAME) );
    

    would return the full paths to all .pdf files in some/path in an array. The above performs about the same as glob(), but iterators provide a more powerful and extensible API.

    0 讨论(0)
  • 2020-12-03 01:07

    You're looking for the glob() function.

    file_exists doesn't do any kind of search : it only allows one to know whether a fle exists or not, when knowingf its name.

    And, with PHP >= 5.3, you could use the new GlobIterator.


    As an example with glob(), the following portion of code :

    $list = glob('temp*.php');
    var_dump($list);
    

    Gives me this output :

    array
      0 => string 'temp-2.php' (length=10)
      1 => string 'temp.php' (length=8)
    


    While this one :

    $list = glob('te*-*');
    var_dump($list);
    

    Yes, with two * ;-)

    Will give me :

    array
      0 => string 'temp-2.php' (length=10)
      1 => string 'test-1.php' (length=10)
      2 => string 'test-curl.php' (length=13)
      3 => string 'test-phing-1' (length=12)
      4 => string 'test-phpdoc' (length=11)
    
    0 讨论(0)
  • 2020-12-03 01:13

    If you need a little more control and are on pre PHP 5.3 you could use a DirectoryIterator or RecursiveDirectoryIterator. Both have a lot of great function for added control and manipulation.

    PHP docs are at DirectoryIterator and RecursiveDirectoryIterator

    0 讨论(0)
提交回复
热议问题