texto recursivo por fecha consola con comando buscar archivos archivo php list dir

php - recursivo - encontrar archivos en un directorio



comando find ubuntu (5)

Esta es una de las muestras del manual

http://nz.php.net/manual/en/function.readdir.php

<?php if ($handle = opendir(''.'')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { echo "$file/n"; } } closedir($handle); } ?>

puedes modificar ese código para probar el nombre del archivo para ver si comienza con pic_1_ usando algo como esto

if (substr($file, 0, 6) == ''pic_1_'')

Referencia manual para substr

http://nz.php.net/manual/en/function.substr.php

Tengo un directorio con muchos archivos dentro:

pic_1_79879879879879879.jpg pic_1_89798798789798789.jpg pic_1_45646545646545646.jpg pic_2_12345678213145646.jpg pic_3_78974565646465645.jpg etc...

Necesito enumerar solo los pic_1_ archivos. ¿Alguna idea de cómo puedo hacer? Gracias por adelantado.


Esto es para lo que es glob () :

glob - Encuentra las rutas que coinciden con un patrón

Ejemplo:

foreach (glob("pic_1*.jpg") as $file) { echo $file; }


La función opend dir te ayudará

$dir ="your path here"; $filetoread ="pic_1_"; if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { if (strpos($file,$filetoread) !== false) echo "filename: $file : filetype: " . filetype($dir . $file) . "/n"; } closedir($dh); } }

buena suerte, vea php.net opendir


Usa la función glob ()

foreach (glob("directory/pic_1_*") as $filename) { echo "$filename"; }

Simplemente cambie el directory en la llamada global a la ruta correcta.

Esto lo hace todo de una vez en vez de tomar la lista de archivos y luego filtrarlos.


Use scandir para listar todos los archivos en un directorio y luego use preg_grep para obtener la lista de archivos que coincidan con el patrón que está buscando.