Вход Регистрация
* Redis (Adm)

Поиск файла в папке и подпапках

  1. $folderName = ABSPATH; // в какой папке ищем
  2. $fileName = "xml"; // что ищем
  3.  
  4. $found = search_file( $folderName, $fileName );
  5.  
  6. print_r( $found );
  7. /* Вернет:
  8. Array
  9. (
  10. [0] => /home/site.ru/xmlrpc.php
  11. [1] => /home/site.ru/wp-includes/class-wp-xmlrpc-server.php
  12. [2] => /home/site.ru/wp-includes/wlwmanifest.xml
  13. )
  14. */
  15.  
  16. /**
  17.  * Поиск файла по имени во всех папках и подпапках
  18.  * @param string $folderName - пусть до папки
  19.  * @param string $fileName - искомый файл
  20.  * @return array Массив найденных файлов.
  21.  */
  22. function search_file( $folderName, $fileName ){
  23. $found = array();
  24. $folderName = rtrim( $folderName, '/' );
  25.  
  26. $dir = opendir( $folderName ); // открываем текущую папку
  27.  
  28. // перебираем папку, пока есть файлы
  29. while( ($file = readdir($dir)) !== false ){
  30. $file_path = "$folderName/$file";
  31.  
  32. if( $file == '.' || $file == '..' ) continue;
  33.  
  34. // это файл проверяем имя
  35. if( is_file($file_path) ){
  36. // если имя файла искомое, то вернем путь до него
  37. if( false !== strpos($file, $fileName) ) $found[] = $file_path;
  38. }
  39. // это папка, то рекурсивно вызываем search_file
  40. elseif( is_dir($file_path) ){
  41. $res = search_file( $file_path, $fileName );
  42. $found = array_merge( $found, $res );
  43. }
  44.  
  45. }
  46.  
  47. closedir($dir); // закрываем папку
  48.  
  49. return $found;
  50. }
» Описание: Поиск файла в папке и подпапках на PHP
Хорошим примером использования рекурсии, может послужить поиск файла в папке и всем вложенным подпапкам.

Для поиска файла, достаточно перебрать все файлы во всех папках и сравнить название файла с искомым. И в случае совпадения добавить путь до файла в массив найденных фалов
» Время добавления: 2 Дек 2019 в 13:55
» Посмотров: 1921
» textarea
» Рейтинг: [+0 | -0]
Комментарии [0]
Онлайн: 1
Реклама