Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Controllo Esistenza di un File

    Ciao Ragazzi!
    un'altra domandina da ...

    ho una serie di file all'interno di una diretory: devo creareo una funzione che proceda al controllo della presenza di un file sulla base di un valore iniziale presente nel suo nome.

    Faccio un Esempio:
    123_aaa_cat1_subcat1.est
    123_aaa_cat1_subcat2.est
    123_aaa_cat2_subcat1.est
    123_aaa_cat2_subcat2.est
    ...
    321_zzz_cat1_subcat1.est
    321_zzz_cat1_subcat2.est
    321_zzz_cat2_subcat1.est
    321_zzz_cat2_subcat2.est
    ...

    Bene.... a questo punto la funzione prende in entrata tre valori:
    $x=valore identificativo del file (123,..., 321,...)
    $c=categoria di riferimento del file (cat1,cat2,...)
    $s=sottocategoria di riferimento del file (subcat1, subcat2,...)

    alla richiesta della funzione il controllo che deve fare è:
    1) controllo esistenza di file che iniziano per il valore $x
    2) se esiste, verifica quali i file $x sono della categoria $c
    3) se esiste, verifica se esiste il file $x della categoria $c e sottocategoria $s
    4) se tutti e tre i punti precedenti risultano soddisfatti stampa il nome del file, altrimenti un valore di errore prestabilito (del tipo: nessun file trovato)

    in pratica io del file conosco tutto tranne il suo nome, che può essere qualsiasi cosa (aaa,...,zzz,...) immagino si debba passare per delle espressioni regolari.

    in alternativa, avete qualche idea di come poter fare questa cosa?

    PS: i file li creo sempre io con un altro sistema, quindi posso fare tutte le modifiche che voglio sulla disposizione delle diverse informazioni.

    A voi la patata bollente... riuscite a raffreddarla con qualche idea?

    Grazie!

    Ciao!

  2. #2
    Un codice del genere dovrebbe andare
    Codice PHP:
    <?php
    $x 
    "123";
    $c "cat1";
    $s "subcat1";

    foreach(
    glob("./cartella/*.est") as $files)
    {
           if(
    eregi("{$x}_(.*)_{$c}_{$s}.est"$files$arr))
               
    print_r($arr);
        else
            echo 
    "Nessun file trovato";
    }
    ?>

  3. #3

  4. #4
    Originariamente inviato da cubalibre810
    Un codice del genere dovrebbe andare
    Codice PHP:
    <?php
    $x 
    "123";
    $c "cat1";
    $s "subcat1";

    foreach(
    glob("./cartella/*.est") as $files)
    {
           if(
    eregi("{$x}_(.*)_{$c}_{$s}.est"$files$arr))
               
    print_r($arr);
        else
            echo 
    "Nessun file trovato";
    }
    ?>
    grazie di nuovo cubalibre!

    funziona...

    GRAZIE!

    Ciao!

  5. #5
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    penso sia più corretto così...

    Codice PHP:
    <?php
    $x 
    "123";
    $c "cat1";
    $s "subcat1";

    foreach(
    glob("./cartella/*.jpg") as $file)
      {
      if( 
    eregi("^{$x}_(.*)_{$c}_{$s}"basename($file,'.jpg')) )   echo "il file $file corrisponde
    "
    ;
      else                                                                            echo 
    "il file $file [b]NON[/b] corrisponde";
      }
    ?>
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  6. #6
    Grazie Mille dottwatson

    Funziona Correttamente e non sbaglia le immagini... quello di cuba, invece prendeva tutto quello che iniziava con il primo valore indicato.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.