Visualizzazione risultati 1 fino 17 di 17

Discussione: [PHP] Confrontare due file

  1. #1
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Talking [PHP] Confrontare due file

    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.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  2. #2
    Guest

    Predefinito

    C'era una funzione di php che adesso mi sfugge il nome che serviva a confrontare due file.. Se lo trovo te lo posto...

  3. #3
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da allo
    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.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  4. #4
    Guest

  5. #5
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Grazie, la posso aggiungere al mio script per semplificarlo.
    Ma non esiste nessuna funzione che confronta due file (di testo)?
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  6. #6
    Guest

    Predefinito

    Non penso, ma se usi due fileread (per il primo e per il secondo file) e similar_text magari esce un qualcosa...

  7. #7
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da allo
    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.
    Codice PHP:
    $risultato=ConfrontaFile($file1,$file2);
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  8. #8
    Guest

    Predefinito

    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..

  9. #9
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da allo
    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.

    [OT] Ti ricordi che mi avevi dato il tuo bannerino? Non mi funziona, me lo potresti rimandare (il link)?
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  10. #10
    Guest

    Predefinito

    Penso che si possa usare md5_file, che in teoria dovrebbe creare un hash diverso per ogni file.

  11. #11
    Guest

    Predefinito

    la prima cosa che mi viene in mente è:
    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;
    }
    ciao ^__^

  12. #12
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da jostock
    la prima cosa che mi viene in mente è:
    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;
    }
    ciao ^__^
    Io utilizzo già una cosa del genere, se leggi gli altri miei messaggi capisci cosa mi servirebbe.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  13. #13
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    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 ;)
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  14. #14
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da Evcz
    come suggerito da tuttueniente2 usa md5_file() e size()

    se hash e dimensione corrispondono allora con altissima probabilità si tratta dello stesso file ;)
    Sto usando le funzioni suggerite da tuttoniente2, ma ci sono delle possibilità che considerino due file uguali anche se sono diversi?
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  15. #15
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    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

    :)
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  16. #16
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Quindi dovrei essere proprio s****to... Va bene, grazie a tutti.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  17. #17
    Guest

    Predefinito

    Citazione Originalmente inviato da funcool
    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.
    Se quello che ho detto non ha senso allora è tutto normale.
    Ultima modifica di JoErNanO : 22-11-2006 alle ore 16.39.36

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •