Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 24-07-08, 16:58   #1 (permalink)
User
 
Data di registrazione: Jan 2008
Messaggi: 93
ordinare file per data

ciao a tutti
avrei un bisognino

io ho una directory in cui vengono creati dei fil e di testo con questo formato:

cliente-last-update-stock-05-06-2008---15-52-45.txt

la prima serie di numeri è il giorno la seconda invece è l'ora

i file nella directory li leggo così:
Codice PHP:
<?php
if ($handle opendir('/web/htdocs/dominio/home/caartella/')) {
    while (
false !== ($file readdir($handle))) 
    { 
        if (
$file != "." && $file != "..") { 
            echo 
"<a href=\"../cartella/$file\" target=\"_blank\">$file</a><br>\n"
        } 
    }
    
closedir($handle); 
}
?>
Ora mi chiedevo cè un modo per stampare a video i file in ordine per ultima modifica??
nel senso se un file è stato scritto il 24/07/2008 alle ore 16:09
e uno è stato scritto il 24/07/2008 alle ore 16:15

cè un modo con cui io posso scegliere l'ordine??

spero di essermi spiegato

vi ringrazio
un saluto
punkrazio non in linea   Rispondi citando
Vecchio 24-07-08, 17:56   #2 (permalink)
User
 
Data di registrazione: May 2008
Messaggi: 67
Prendi tutti i file in un array, parsi il nome dei file per ottenere da data e l'ora (con una regex magari), ne ricavi il timestamp, e fai un sort dell'array in base a quello.
Purtroppo sto scappando e non ho tempo di fartelo..
sydarex non in linea   Rispondi citando
Vecchio 24-07-08, 19:43   #3 (permalink)
Esperto
 
L'avatar di Jeeves
 
Data di registrazione: May 2008
Messaggi: 333
Io ti dico che la funzione per vedere l'ultima modifica dei file è filemtime()





Jeeves non in linea   Rispondi citando
Vecchio 25-07-08, 17:02   #4 (permalink)
User
 
Data di registrazione: Jan 2008
Messaggi: 93
soluzione trovata

Codice PHP:
$arrayfile = Array();
function 
ordina($file1,$file2
{
    
$tempo1 filectime($file1);
    
$tempo2 filectime($file2);
    return (
$tempo1 $tempo2) ? : -1;
}
if (
$handle opendir('/web/htdocs/domain/home/customer/update_stock/')) 
{
    while (
false !== ($file readdir($handle))) 
    {
        if (
$file != "." && $file != "..") { 
            
$arrayfile[]='../customer/update_stock/'.$file;
        } 
    }
    
closedir($handle); 
    
usort($arrayfile,'ordina');
    
//print_r($arrayfile);
    
foreach($arrayfile as $txt)
    {
        echo 
"<a href=\"$txt\" target=\"_blank\">".str_replace("../customer/update_stock/","",$txt)."</a><br>\n"
    }
}
clearstatcache(); 
punkrazio non in linea   Rispondi citando
Vecchio 25-07-08, 17:16   #5 (permalink)
User
 
Data di registrazione: May 2008
Messaggi: 67
Quote:
Jeeves Visualizza il messaggio
Io ti dico che la funzione per vedere l'ultima modifica dei file è filemtime()





Giusto, io ho erroneamente capito che doveva farlo a seconda della data scritta nel nome del file!

Ti scrivo il codice, punkrazio:
Non è assolutamente la soluzione migliore, ma andavo di fretta e l'ho fatto nel primo modo che mi passava per la testa.. non ho potuto neanche testarlo, se non funziona dimmi che errori ti dà..
Codice PHP:
<?php
$fl
= array();
$ft= array();
if (
$handle opendir('/web/htdocs/dominio/home/caartella/')) {
    while (
false !== ($file readdir($handle))) 
    { 
        if (
$file != "." && $file != "..") { 
            
$fl[] = array($filefilemtime('/web/htdocs/dominio/home/caartella/'.$file));
        } 
    }
    
closedir($handle); 
}
# A questo punto in $fa abbiamo tutti i file sottoforma di array (nomefile, ultima modifica) 
foreach ($fl as $t) {
    
$tos[] = $t[1];
}
array_multisort($tosSORT_DESC$fl);
# Adesso, $fl è ordinato secondo la data di modifica.
foreach ($fl as $t) {
    echo 
"<a href=\"../cartella/".$t[0]."\" target=\"_blank\">".$t[0]."</a><br>\n"
}
?>
EDIT: Tò, in ritardo. xD
sydarex non in linea   Rispondi citando
Vecchio 29-10-09, 02:34   #6 (permalink)
fm7
User
 
L'avatar di fm7
 
Data di registrazione: Feb 2006
Messaggi: 43
Ciao Trackback

Interessante anche questo tutorial.

Senti ma è possibile fare questa identica cosa

però sui files di tutte le cartelle e sottocoartelle?

Cioè la lista dei files di tutte le cartelle, ordinate per data di modifica?

Ciao grazie
fm7 non in linea   Rispondi citando
Vecchio 10-01-12, 22:43   #7 (permalink)
User
 
Data di registrazione: Dec 2005
Messaggi: 15
nel caso volessi stampare nome, data e dimensione del file insieme? come potrei modificare?

Ultima modifica di mila : 10-01-12 23:17.
mila non in linea   Rispondi citando
Rispondi


Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 12:59.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.