ciao, visto che oggi mi serviva una cosa simile sono partito dal codice che abbiamo scritto ieri, e che come ti avevo detto non avevo testato.
Era pieno di errori anche di sintassi, comunque questo l'ho testato e sembra funzionare:
Se vuoi vedere il debug passa come 3 argomento 1.codice:<?php $filter = "jpg"; // directory dove cercare $directory = "D:/Archivio Foto/"; function readDirRecursive($directory, $filter = '', $debug = 0) { if($directory{strlen($directory)-1} !== '/' && $directory{strlen($directory)-1} !== '\\') { $directory .= '/'; } if($debug) { echo "funzione richiamata con i paremtri: "; echo "directory:".$directory." "; echo "filter:".$filter." "; } $items = array(); $d = dir($directory); if ($d) { while($entry=$d->read()) { $path_assoluto = $directory.$entry; if(is_dir($path_assoluto) && $entry != "." && $entry != '..') { if($debug) { echo "l'entry :".$path_assoluto." è una directory, richiamo nuovamente readDirRecursive con i parametri (".$entry.",".$filter."); "; } $items = array_merge($items, readDirRecursive($path_assoluto, $filter, $debug)); } else { $add = true; if($filter) { $ext = array_pop(explode('.', $path_assoluto)); if(strpos(strtolower($path_assoluto), $filter) === false) { $add = false; } } if($add) { $items[] = $path_assoluto; } elseif($debug) { echo "l'entry :".$entry." non soddisfa il filtro "; } } } $d->close(); sort($items); return $items; } elseif($debug) { echo "Non riesco a leggere la directory : ".$directory." "; } } $items = readDirRecursive($directory, $filter, 0); echo "<pre>"; print_r($items); echo "</pre>"; ?>
Il filtro viene effettuato sulle estensioni, e non su tutto il file.
Ciao
![]()

Rispondi quotando