cercare un file

Ciao a tutti,

sto realizzando una funzione che sia in grado di cercare un file all'interno di una cartella.

Prima leggo il nome del file da cercare da un file txt (questo lo deve fare per ogni riga del file txt) salvo il nome del file da cercare apro la cartella e cerco il file.

Ora i file all'interno della cartella sono circa 7000.

Io riesco a leggere il contenuto della cartella ma c'è qualcosa che non va nel ciclo. Non stampa mai che il file esiste ..... mi dite per favore che cosa c'è da correggere in questo script  :idiot:

$array = file("aa/testo.txt"); 

foreach( $array as $stringa ) 

{  

    $foto_uno=substr($stringa, 1620, 57); 

    $photos1 = explode('/', $foto_uno, -1);

    $nome_file_vero1 = $photos1[6]; //nome della prima immagine

                     

    $cartella = opendir('/var/www/miosito.it/aa/immagini/');

               

     while ($file = readdir($cartella)) {                

                $file_array[] = $file;

                      

          foreach ($file_array as $file) {                   

   if (file_exists ($nome_file_vero1))

      echo "ESISTE";

               else 

      echo "--";

         }

    }

               

}

grazie

 :bye:

inviato 10 anni fa
stellina
X 0 X

Considerando che devi effettuare la verifica per diversi file ti conviene usare un approccio differente.

1) Memorizza in un array tutti i nomi dei file da cercare (estraenoli dal file di testo)

2) Memorizza in un altro array tutti i file presenti nella cartella

3) Con un UNICO ciclo foreach sul primo array verifichi l'esistenza del file con un semplice in_array() sul secondo array.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
1) Memorizza in un array tutti i nomi dei file da cercare (estraenoli dal file di testo)

  $array = file("aa/testo.txt"); 

2) Memorizza in un altro array tutti i file presenti nella cartella
 while (false !== ($file = readdir($cartella))) { 

   $file_array[] = $file;

}
3) Con un UNICO ciclo foreach sul primo array verifichi l'esistenza del file con un semplice in_array() sul secondo array.
foreach( $array as $stringa ) 

{ 

        in_array($array, $file_array[] ) 

}

così????   :(

risposto 10 anni fa
stellina
modificato 10 anni fa
X 0 X

seguendo le tue indicazioni sono riuscita a fare il controllo sui fail.

Esiste un modo per conoscere nil peso del fine contenuto nella cartella per poi confrontarlo con quello che stai cercando???

risposto 10 anni fa
stellina
X 0 X

Ecco l'errore riportato:

Warning: filesize(): Stat failed for http://www.altrosito.it/immagini/151.JPG (errno=2 - No such file or directory) in /var/www/mio.it/esiste2.php on line 61

che cosa vuol dire??

ho tentato di verificare le dimensioni del file che sta in un altro sito con quello che ho già salvato in una mia cartella per vedere se nel primo caso ci sono stati dei cambiamenti rispetto a quando ho fatto l'upload.

 :bye:

risposto 10 anni fa
stellina
X 0 X

filesize non funziona con gli URL ma solo con i file locali  :dunno:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

fatto, tutto ok!!

GRAZIE MILLE!!

 :bye:

risposto 10 anni fa
stellina
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda