Search code examples
phpwildcard

PHP file_exists and wildcard


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 called "hello", but I didn't know the extension, how would I write a function that searched for a file called hello.* and returned the name of this file? As far as I can tell, file_exists will only search for a string.

Thanks.


Solution

  • You're looking for the glob() function.

    file_exists doesn't do any kind of search : it only allows one to know whether a file exists or not, when knowing 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)