buscar una amplia gama de archivos dispersos en diferentes carpetas y subcarpetas puede ser una tarea desalentadora. Sin embargo, la función Glob de PHP proporciona una solución versátil para abordar este desafío.
Su intento inicial implicó usar Glob para buscar dentro del directorio raíz. Para extender su alcance más allá de la raíz, considere los siguientes dos enfoques:
1. Glob recursivo con la función RGLOB:
La función RGLOB mejora las capacidades del globo al habilitar las búsquedas recursivas. Desciende recursivamente a subdirectorios, devolviendo todos los archivos coincidentes. Por ejemplo:
function rglob($pattern, $flags = 0) { $files = glob($pattern, $flags); foreach (glob(dirname($pattern).'/*', GLOB_ONLYDIR|GLOB_NOSORT) as $dir) { $files = array_merge([], ...[$files, rglob($dir . "/". basename($pattern), $flags)]); } return $files; } $result = rglob($_SERVER['DOCUMENT_ROOT'] . '/test.zip'); var_dump($result);
2. Directorio recursivo iterador:
La clase RecursiveDirectorator es otra opción para la búsqueda de archivos recursivos. Proporciona un enfoque más flexible y orientado a objetos:
function rsearch($folder, $regPattern) { $dir = new RecursiveDirectoryIterator($folder); $ite = new RecursiveIteratorIterator($dir); $files = new RegexIterator($ite, $regPattern, RegexIterator::GET_MATCH); $fileList = array(); foreach($files as $file) { $fileList = array_merge($fileList, $file); } return $fileList; } $result = rsearch($_SERVER['DOCUMENT_ROOT'], '/.*\/test\.zip/'); var_dump($result);
ambos enfoques pueden escanear efectivamente las subcarpetas para el archivo especificado. Elija el que mejor se adapte a los requisitos y preferencias de su proyecto.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3