Visualizzazione risultati 1 fino 7 di 7

Discussione: [PHP] Confronto tra file e cartella

  1. #1
    Guest

    Post [PHP] Confronto tra file e cartella

    Ciao a tutti, quello che sto per chiedere forse non è una cosa semplice, ma io ci provo lo stesso.
    Ho una cartella con varie immagini, tutte numerate "a caso" e un file con una lista di immagini remote (http://site.com/dir/img.est)
    Ora io vorrei confrontare questa lista di immagini nel file txt con quelle presenti nella cartella. Come posso fare??
    Codice PHP:
    <?
    ## cartella immagini copiate
    $glob = glob("../statusweather/images/*.png");
    $tot = count($glob);
    echo
    "Ci sono {$tot} immagini nella cartella...";

    #####################################################
    echo "<br>";
    ## file immagini da copiare
    $file = file_get_contents("update.txt");
    $ex = explode("\n",$file);
    $ktot = count(array_keys($ex));

    echo
    "Ci sono {$ktot} immagini nel file update...";
    #####################################################
    echo "<hr>";
    ?>
    Ho buttato giù questa bozza... ma non so' come continuare.
    In pratica, lo script dovrebbe mostrare gli url delle immagini non nella cartella..
    Il file è di questo tipo:
    Qualcuno sa come aiutarmi? Grazie mille! ^^"

  2. #2
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Codice PHP:
    <?
    ## cartella immagini copiate
    $glob = glob("../statusweather/images/*.png");
    $tot = count($glob);
    echo
    "Ci sono {$tot} immagini nella cartella...";

    #####################################################
    echo "<br>";
    ## file immagini da copiare
    $file = file("update.txt");
    $ktot = count($file);

    echo
    "Ci sono {$ktot} immagini nel file update...";
    #####################################################
    echo "<hr>";

    foreach(
    $file as $url) {
    if(!
    in_array($url, $glob)) {
    echo
    $url;
    }
    }
    ?>
    Se ho capito bene, dovrebbe essere così.
    Ultima modifica di mycarlo : 25-02-2010 alle ore 15.38.28

  3. #3
    Guest

    Predefinito

    Il problema e che dopo queste immagini vengono rinominate con 1, 2, 3, 4, 5 e così via.
    Quindi me li mostra tutte. Io dovrei fare il confronto per dimensione e così da capire quale manca! V_V
    Se volete, si accettano altri metodi! xD

  4. #4
    Guest

    Predefinito

    il confronto per dimensione? e se ci fossero due file di ugual dimensione?
    prova a dare un occhiata qui:
    http://www.php.net/manual/en/function.md5-file.php

  5. #5
    Guest

    Predefinito

    Mmm...ma come ho spiegato i file non hanno lo stesso nome.
    Sono numerati quindi può capitare che un file si chiama "88.png" ed è uguale a "nomeimg33121.png" ...come faccio con PHP?
    Ho provato così, ma va in loop! O-o
    Codice PHP:
    <?
    ## cartella immagini copiate
    $glob = glob("../statusweather/images/*.png");
    $tot = count($glob);

    $img = "";
    foreach(
    $glob as $img) {
    $img .= md5_file($img);
    }
    $glob[] = $img;

    #$glob = md5_file($glob);
    echo "Ci sono {$tot} immagini nella cartella...";

    #####################################################
    echo "<br>";
    ## file immagini da copiare
    $file = file("update.txt");
    $ktot = count($file);

    echo
    "Ci sono {$ktot} immagini nel file update...";
    #####################################################
    echo "<hr>";

    foreach(
    $file as $url) {
    $url = md5_file($url);
    if(!
    in_array($url, $glob)) {
    echo
    $url;
    }
    }
    ?>
    Grazie mille! ^^"
    Ultima modifica di sIM : 25-02-2010 alle ore 21.17.38

  6. #6
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    [QUOTE=sIM;713949]Mmm...ma come ho spiegato i file non hanno lo stesso nome.
    Sono numerati quindi può capitare che un file si chiama "88.png" ed è uguale a "nomeimg33121.png" ...come faccio con PHP?
    Ho provato così, ma va in loop! O-o
    Codice PHP:
    $img = "";
    foreach(
    $glob as $img) {
    $img .= md5_file($img);
    }
    $glob[] = $img;
    E a cosa ti serve concatenare l'hash di tutti i file per poi aggiungerlo all'array $glob?
    A te serve l'hash md5 corrispondente ad ogni file
    Codice PHP:
    foreach($glob as &$img) {
    $img = md5_file($img);
    }

  7. #7
    Guest

    Predefinito

    Mmm...non riesce ad aprire i files! :(
    Mi da errore 404, ma funzionano se ci vado con Firefox O-o

Regole di scrittura

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