Volevo sapere se qualcuno conosce una funzione per confrontare due file e per dire se sono uguali.
Per adesso me ne sono creata una io molto complessa, ma preferivo qualcosa di semplice.
Printable View
Volevo sapere se qualcuno conosce una funzione per confrontare due file e per dire se sono uguali.
Per adesso me ne sono creata una io molto complessa, ma preferivo qualcosa di semplice.
C'era una funzione di php che adesso mi sfugge il nome che serviva a confrontare due file.. Se lo trovo te lo posto...
OK, grazie, è proprio quello che mi serve.Citazione:
Originalmente inviato da allo
Trovato! http://it2.php.net/manual/it/function.similar-text.php
Ciao!
Grazie, la posso aggiungere al mio script per semplificarlo.
Ma non esiste nessuna funzione che confronta due file (di testo)?
Non penso, ma se usi due fileread (per il primo e per il secondo file) e similar_text magari esce un qualcosa...
Faccio già una cosa del genere ma se esisteva una funzione così era meglio.Citazione:
Originalmente inviato da allo
Codice PHP:$risultato=ConfrontaFile($file1,$file2);
Potresti fare una cosa un pò meno bella, cioè confrontare quanti byte è un file e quanti byte l'altro, con il filesize, ma non è molto elegante..
Il problema è che essendo file di testo con i contenuti molto simili, può capitare che la grandezza è identica ma il contenuto è diverso.Citazione:
Originalmente inviato da allo
[OT] Ti ricordi che mi avevi dato il tuo bannerino? Non mi funziona, me lo potresti rimandare (il link)?
Penso che si possa usare md5_file, che in teoria dovrebbe creare un hash diverso per ogni file.
la prima cosa che mi viene in mente è:
ciao ^__^Codice PHP:function checkfile($file1, $file2)
{
if( !file_exists($file1) || !file_exists($file2) )
{
return false;
}
$content1 = implode('', file($file1));
$content2 = implode('', file($file2));
return ( $content1 == $content2 ) ? true : false;
}
Io utilizzo già una cosa del genere, se leggi gli altri miei messaggi capisci cosa mi servirebbe.Citazione:
Originalmente inviato da jostock
come suggerito da tuttueniente2 usa md5_file() e size()
se hash e dimensione corrispondono allora con altissima probabilità si tratta dello stesso file ;)
fare un confronto == con stringhe che magari contentono 2 o 3mega di dati non è proprio il massimo ;)
Sto usando le funzioni suggerite da tuttoniente2, ma ci sono delle possibilità che considerino due file uguali anche se sono diversi?Citazione:
Originalmente inviato da Evcz
eh...
trattandosi di hash la collisione è possibile...
md5() è pensato per ridurle al minimo... e se ci associ pure la dimensione del file la collisione diventa un evento remotissimo... (comunque possibile?)
tieni conto che anche emule per identificare i files (i famigerati links ed2k) usa md5 (e md4) e filesize.... :)
dai una letta qua per farti un idea su cos'è un hash:
http://it.wikipedia.org/wiki/Hash
:)
Quindi dovrei essere proprio s****to... Va bene, grazie a tutti.
L'hash con md5sum è ritenuto abbastanza sicuro. Esiste comunque l'algoritmo Pollard Rho che va alla ricerca delle collisioni ma naturalmente servono dei supercomputer o stringhe hashate senza Des o simili.Citazione:
Originalmente inviato da funcool
Se quello che ho detto non ha senso allora è tutto normale. :=D: