Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    leggere un nome di un file...

    miao,
    visto che la ricerca non mi vuole funzionare......

    avrei bisogno di poter leggere un nome di un file (che cambia nome in parte...)
    del tipo "versione 1.2.8" che può cambiare in "versione x.x.x"

    avrei bisogno di prendere poi solo la parte numerica.. quindi x.x.x e poterla visualizzare....

    come posso fare a fargli cercare e leggere solo il file che inizia con "versione "?
    il file è sempre e solo 1, non ci saranno mai 2 file che iniziano x versione....


    consigli
    Lunga Vita e prosperità!
    Foto e video di Adriana Lima-->http://www.nasosan.it

  2. #2
    Ti consiglio l'uso della buona vecchia glob().

    Codice PHP:
    $filename glob('versione *');
    ... 
    Una volta che sai il nome del file puoi analizzare la stringa. Nel caso specifico farei:

    Codice PHP:
    list($major$minor$micro) = explode('.'substr($filename9)); 
    Per qualcosa di più complesso puoi usare le espressioni regolari.

  3. #3
    allora...

    io ho fatto questo codice
    codice:
    <?php
    $filename = glob('versione *'); 
    list($major, $minor, $micro) = explode('.', substr($filename, 9));
    
    echo $filname;
    echo $major;
    echo $minor;
    echo $micro;
    
    ?>
    dentro la cartella da dove lancio questo file ci sono 2 file:

    versione 1.2.3

    test.php


    però il risultato è che non mi visualizza nulla....
    Lunga Vita e prosperità!
    Foto e video di Adriana Lima-->http://www.nasosan.it

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Codice PHP:
    $path glob('versione*.*');
    $file basename($path[0]); // nel caso il tuo script sia in una cartella diversa metti il percorso dentro glob
    $filename substr($file,0,strpos($file,array_pop(explode('.',$file)))-1);
    $ver preg_replace('#[a-z ]#','',$filename);
    echo 
    $ver

  5. #5
    ottimo,
    però mi restituisce solo 1.2
    quando il file si chiama versione 1.2.3

    ora vedo se ci riesco io.. altrimenti...
    grazie mille.

    ps

    risolto.. così facendo mi permette di leggere versioni da 1 a 9.1 a 99. 1 a 99

    codice:
    <?php
    $path = glob('versione*.*'); 
    $file = basename($path[0]); // nel caso il tuo script sia in una cartella diversa metti il percorso dentro glob 
    $filename = substr($file,0,strpos($file,array_pop(explode('.',$file)))+2); 
    $ver = preg_replace('#[a-z ]#','',$filename); 
    echo $ver;
    ?>
    Lunga Vita e prosperità!
    Foto e video di Adriana Lima-->http://www.nasosan.it

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da nasosansoft
    ottimo,
    però mi restituisce solo 1.2
    quando il file si chiama versione 1.2.3

    ora vedo se ci riesco io.. altrimenti...
    grazie mille.
    Ma il file quindi non ha nessuna estensione?

  7. #7
    Originariamente inviato da nicola75ss
    Ma il file quindi non ha nessuna estensione?
    no.. il file si chiama esattamente come avevo scritto...
    versione 1.2.3
    al massimo
    versione 1.22.33

    come ho modificato nel post precedente mi funziona.
    Lunga Vita e prosperità!
    Foto e video di Adriana Lima-->http://www.nasosan.it

  8. #8
    Originariamente inviato da nasosansoft
    ...però il risultato è che non mi visualizza nulla....
    E' vero, mi son dimenticato un piccolo dannato particolare: glob() ritorna un array. Ergo:

    Codice PHP:
    <?php
    $filename 
    reset(glob('versione *'));
    list(
    $major$minor$micro) = explode('.'substr($filename9));

    echo 
    $filname;
    echo 
    $major;
    echo 
    $minor;
    echo 
    $micro;

    ?>
    Provato in locale funge. Consiglio di aggiungere un controllo, tipo che l'array ritornato da glob() sia di un elemento o qualcosa del genere.

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da nasosansoft
    no.. il file si chiama esattamente come avevo scritto...
    versione 1.2.3
    al massimo
    versione 1.22.33

    come ho modificato nel post precedente mi funziona.
    Codice PHP:
    $path glob('versione*.*');
    $file basename($path[0]);
    $ver preg_replace('#[a-z ]#','',$file);
    echo 
    $ver

  10. #10
    Originariamente inviato da nicola75ss
    Codice PHP:
    $path glob('versione*.*');
    $file basename($path[0]);
    $ver preg_replace('#[a-z ]#','',$file);
    echo 
    $ver
    veramente ottimo
    grazie a tutte e 2

    ps

    e se volessi anche prendere in automatico anche la data di modifica del file?

    così verrebbe indicato nel mio file copyright, sia la versione, che la data....
    cambiando solo il nome a quel file...



    arips

    trovata soluzione

    echo date("Y m d ", filectime($file));

    così mi stampa la data di creazione/modifica del file nel formato aaaa mm gg

    problema...
    con il comando filectime viene cercata la data di creazione..
    peccato che con windows, se io cancello un file e lo ricreo uguale, lui mantiene la data di creazione di quello vecchio....

    ho corretto il comando di prima con fileatime e ora prende la data di modifica....


    grazie.
    Lunga Vita e prosperità!
    Foto e video di Adriana Lima-->http://www.nasosan.it

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.