Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012

    data creazione o modifica cartella

    buonasera, come da titolo.....

    in php.net ci sono una valanga di informazioni riguardo ai file, ma... data di una cartella?

    fileatime,filemtime ecc.. tutte riferite a file.. ma le cartelle??? :master:
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    up
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #3
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    up!!

    avrò mica trovato un bug informativo di php ?!?!?!
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  4. #4
    ti cerco se esiste qualcosa xD

  5. #5
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    grazie goikiu

    io intanto ho trovato questa interessantissima funzione

    stat()

    http://it2.php.net/manual/it/function.stat.php

    che sembra darmi dei dati corretti

    quello che non capisco è che in php.net pert questa funzione usano il termine "filename"

    Restituisce una serie di informazioni a riguardo del file filename. Se il parametro filename è un link simbolico, le informazioni riguardano il file stesso, e non il file puntato dal link. La funzione lstat() è identica a stat() tranne che dovrebbe restituire il file puntato dal link.

    In caso di errore stat() restituisce FALSE. Inoltre genera un warning.
    perchè questo termine così generico se poi risolve le richieste anche per una directory?? una leggerezza??
    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
    Pare che stat() e filename() generino errori (forse) in vista di una cartella oO dovresti provare, in uno degli esempi hanno messo un codice particolare, non ricordo quale, per riconoscere una cartella, ma te potresti controllare con is_dir()

  7. #7
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    ho provato, stat() non ha generato nessun errore, mi ha fornito tutti i dati eccetto filesize della cartella.

    a questo punto mi chiedo se anche fileatime e filemtime possano comportarsi allo stesso modo con le cartelle, e sarebbe utile SOPRATTUTTO che fosse precisato in php.net la duplicità di alcune funzioni!

    spero questo thread sia utile anche ad altre persone visto che google non riesce a darmi risultati per questa problematica

    grazie per il supporto tecnico goikiu!!
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  8. #8
    lol, prego, anche se sono stato abbastanza inutile questa volta xD

  9. #9
    Originariamente inviato da dottwatson
    up!!

    avrò mica trovato un bug informativo di php ?!?!?!
    No semplicemente in un filesystem unix (linux) un filename e una directory sono rappresentati (nel disco) dalla stessa struttura dati che si chiama inode.
    La funzione stat() di php ricalca la syscall di sistema di unix infatti:

    Codice PHP:
     array stat string $filename 
    questa è il prototipo per php

    Codice PHP:
     int stat(const char *file_namestruct stat *buf
    questo è il prototipo fornito dal kernel unix.
    La syscall unix ritorna nel puntatore *buf questa struttura:

    Codice PHP:
    struct stat 
        
    dev_t         st_dev;      /* device */ 
        
    ino_t         st_ino;      /* inode */ 
        
    mode_t        st_mode;     /* protection */ 
        
    nlink_t       st_nlink;    /* number of hard links */ 
        
    uid_t         st_uid;      /* user ID of owner */ 
        
    gid_t         st_gid;      /* group ID of owner */ 
        
    dev_t         st_rdev;     /* device type (if inode device) */ 
        
    off_t         st_size;     /* total size, in bytes */ 
        
    unsigned long st_blksize;  /* blocksize for filesystem I/O */ 
        
    unsigned long st_blocks;   /* number of blocks allocated */ 
        
    time_t        st_atime;    /* time of last access */ 
        
    time_t        st_mtime;    /* time of last modification */ 
        
    time_t        st_ctime;    /* time of last change */ 
    }; 
    che confrontandolo con l'array che ti ritorna la stat di php è identico.

    NB anche nella descrizione della syscall stat non viene fatta distinzione tra file e directory infatti il primo parametro della syscall è una stringa filename come in php.

    NB le funzioni file filemtime, fileatime, etc.etc. di php molto probabilmente sono state implementate nel linguaggio accedendo alle informazioni dell' inode tramite la syscall stat, in caso di server unix oppure usando la stessa syscall disponibile in windows dalla compatibilità con POSIX.

    Ciao spero di aver chiarito qualcosa

  10. #10
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    si si sei stato utilissimo , mi hai chiarito ora il perchè in php.net non viene fatta alcuna differenza tra file e directory (in fase di raccolta informazioni chiaramente! e non di lettura / scrittura), questo perchè accedendo direttamente al filesys del hd, da quello che ho potuto capire,

    in senso logico non esistono differenze tra le due risorse,

    mentre in senso pratico bisogna attraversarle in maniera differente.

    dimmi se sbaglio...
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

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.