PHP file_exists и подстановочный знак

Есть ли способ написать функцию PHP file_exists, чтобы она искала каталог для файла с произвольным расширением. Например, предположим, что я знал, что файл называется «привет», но я не знал расширения, как бы написать функцию, которая искала файл с именем hello. * И вернула имя этого файла? Насколько я могу судить, file_exists будет искать только строку.

Благодарю.

    Вы ищете функцию glob() .

    file_exists не выполняет никакого поиска: он позволяет только знать, существует ли какой-либо флик, когда он знает свое имя.

    И, используя PHP> = 5.3, вы можете использовать новый GlobIterator .

    В качестве примера с glob() , следующая часть кода:

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

    Дает мне этот результат:

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

    Хотя этот:

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

    Да, с двумя * 😉

    Дай мне:

     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) 

    Начиная с PHP5.3, вы также можете использовать GlobIterator для поиска в каталоге с подстановочными знаками:

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

    вернет полные пути ко всем файлам .pdf в некотором / пути в массиве. Вышеописанное работает примерно так же, как glob() , но итераторы предоставляют более мощный и расширяемый API.

    Пока file_exists возвращает BOOLEAN, я написал эту небольшую функцию, которая принимает строку поиска с * для поиска файлов … Пример:

      searchForFile("temp*"); function searchForFile($fileToSearchFor){ $numberOfFiles = count(glob($fileToSearchFor)); if($numberOfFiles == 0){ return(FALSE); } else { return(TRUE);} } 

    Если вам нужно немного больше контроля и на pre PHP 5.3 вы можете использовать DirectoryIterator или RecursiveDirectoryIterator. Оба имеют большую функцию для дополнительного управления и манипуляций.

    Документы PHP находятся в каталоге DirectoryIterator и RecursiveDirectoryIterator