Script che restituisce il file con data di modifica più recente di una directory

atonyc

Utente Attivo
10 Dic 2008
67
0
0
Come da oggetto, qualcuno sa se con php è possibile?
Mi spiego meglio lo script deve andare ad analizzare il contenuto di una directory e come risposta restituire il nome del file con data di modifica più recente.
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
24
Roma
alessandro1997.netsons.org
Prova ad usare questo script. Dovrebbe funzionare.
PHP:
<?php
$files = glob('directory');
$mtimes = array();

foreach($files as $f)
{
	if(file_exists($f))
		$mtimes[] = filemtime($f);
}

$mtime = max($mtimes);
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
però il tuo script restituisce la data dell'ultimo aggiornamento, ma non il nome del file.
@ atonyc: prova in questo modo

PHP:
<?php
$files = glob('cartella/*.*'); 
$mtimes = array(); 
foreach($files as $f) 
{ 
    if(file_exists($f))
		$file=str_replace(".","_0_",$f);//tolgo il punto che da fastidio
        $mtimes[$file] = filemtime($f); //li chiavi dell'array sono il nome dei files (modificato)
} 
$ultimo=max($mtimes);
$chiave=array_search($ultimo, $mtimes);
$chiave=str_replace("_0_",".",$chiave);//rimetto il punto
echo "il file ".$chiave." è stato aggiornato il ".date("d m Y H:i:s",$ultimo);
?>
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
24
Roma
alessandro1997.netsons.org
Sì, mi ero dimenticato. Comunque non vedo per quale motivo tu debba togliere il punto. Le chiavi dell'array lo possono benissimo contenere. Quindi:
PHP:
<?php
$files = glob('directory/*.*');
$mtimes = array();

foreach($files as $f)
    $mtimes[$f] = filemtime($f);

$last = max($mtimes);
$file = array_search($last, $mtimes);
?>
 

atonyc

Utente Attivo
10 Dic 2008
67
0
0
Grazie ragazzi lo script funzione perfettamente.. solo 1 cosa
è possibile se il file non esiste fare in modo che lo script non dia errore
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
se il file non esiste glob non lo rileva, l'unica dovrebbe essere se la cartella è vuota
adesso guardo cosa dovrebbe restituire glob poi ti so dire.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
se non ci sono file restituisce un array vuoto. prova così

PHP:
<?php 
$files = glob('cartella/*.*');  
if(!empty($files){
	$mtimes = array();  
	foreach($files as $f)  
	{  
    	if(file_exists($f)) 
        	$file=str_replace(".","_0_",$f);//tolgo il punto che da fastidio 
        	$mtimes[$file] = filemtime($f); //li chiavi dell'array sono il nome dei files (modificato) 
	}  
	$ultimo=max($mtimes); 
	$chiave=array_search($ultimo, $mtimes); 
	$chiave=str_replace("_0_",".",$chiave);//rimetto il punto 
	echo "il file ".$chiave." è stato aggiornato il ".date("d m Y H:i:s",$ultimo);
}else{
	echo "nella cartella non ci sono files";
}
?>
 

atonyc

Utente Attivo
10 Dic 2008
67
0
0
Perfetto ora funziona alla grande, solo una cosa se io volessi che lo script mi restituisca il nome dell'ultimo file solo se la sua data di modifica è uguale alla data del server ( come riferimenti ovviamente solo mese e anno ).

Per intenderci:
il giorno 10/2010 inserisco un file nel server, io vorrei che lo script me lo facesse visualizzare solo il 10/2010.

spero di esser stato chiaro.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
guarda se è questo che intendevi
PHP:
<?php
$files = glob('cartella/*.*');
$ieri=time()-(24*60*60);//leggo la data timestamp di 24 ore fa'
if(!empty($files)){ 
    $mtimes = array();   
    foreach($files as $f)   
    {   
        if(file_exists($f))  
            $file=str_replace(".","_0_",$f);//tolgo il punto che da fastidio  
            $mtimes[$file] = filemtime($f); //li chiavi dell'array sono il nome dei files (modificato)  
    }   
    $ultimo=max($mtimes);
	if($ultimo < $ieri){
		echo "non ci sono file aggiornati nelle ultime 24 ore";
	}else{
    	$chiave=array_search($ultimo, $mtimes);  
    	$chiave=str_replace("_0_",".",$chiave);//rimetto il punto  
    	echo "il file ".$chiave." è stato aggiornato il ".date("d m Y H:i:s",$ultimo);
	}
	
}else{ 
    echo "nella cartella non ci sono files"; 
} 
?>
 

atonyc

Utente Attivo
10 Dic 2008
67
0
0
e se volessi visualizzare solo i file inseriti nello stesso giorno e non nel mese incorso
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
lo script che ti ho inviato tira fuori il file inserito nelle ultime 24 ore
PHP:
$ieri=time()-(24*60*60);//leggo la data timestamp di 24 ore fa'
 

gnappoman

Nuovo Utente
14 Mar 2011
3
0
0
ottimo script

Ciao,
vorrei utilizzare questo script per una parte di codice che sto scrivendo..
La mia idea è che lo script, dopo aver individuato il file più recente, cerchi anche tutti gli altri file che hanno lo stesso nome (tranne gli ultimi tre caratteri) e poi uploadi tutto sulla cartella di un server ftp remoto.
Mi aiutate?
Grazie mille!:book:

script per fare un backup da server a server
Ciao ragazzi,
avrei bisogno di scrivere un semplice script di backup, che faccia la copia di una serie di files el tipo site-www.miosito.net-20110313-192632.jpa
già creati in automatico dall'ottimo akeeba backup, ad un altro server, entrando via ftp.

Ci sono due cose però:

1- sul server di partenza lo spazio è illimitato, ma la dimensione di ogni file non può essere superiore ai 4 mb, quindi i vari files saranno fatti a pezzetti dall'ottimo akeeba backup, del tipo site-www.miosito.net-20110313-192632-001.jpa site-www.miosito.net-20110313-192632-002.jpa etc....
Quindi terrò l'opzione di mantenere sul server tutti i backup senza mai cancellarli, però a pezzetti, e il numero di pezzetti sarà variabile, perchè il sito potrebbe ingrandirsi/rimpicciolirsi in base a quello che succede.

2- sul server di arrivo non solo lo spazio a disposizione è limitato, ma anche la banda è molto ridotta, quindi ci trasferirei, di giorno in giorno, solo l'ultimo dei bakup fatti sull'altro sito.

dunque in sostanza lo script di backup periodicamente (avvio impostato sul cron del server):

1- controlla data e ora dei file nella cartella preposta e sceglie i più recenti, eseguendo un loop fino ad individuarne tutte le parti
2- apre una connessione ftp con il server remoto e copia il tutto in una cartella tempornea verificando che l'operazione sia andata a buon fine, altrimenti riprova finchè non ce la fa
3- fa piazza pulita di ciò che trova nella cartella preposta e poi ci sposta dentro i file della cartella temporanea

Che ne dite? Sapete di qualcosa di già fatto?
Forse con qualche smanaggiamento questo potrebbe andare bn,,,
 
Discussioni simili
Autore Titolo Forum Risposte Data
T [a pagamento] programmatore PHP che mi aiuti a migrare gli script da vecchia versione PHP a nuova Offerte e Richieste di Lavoro e/o Collaborazione 1
Max 1 [PHP] Script che funziona in locale e non online PHP 16
A [PHP] Script con array con numeri che iniziano per 00 PHP 2
D [PHP] script che invii una mail automatica dopo risposta ad una discussione di un forum PHP 0
D [Javascript] Script che controlla quello che hai scritto nell'input Javascript 3
Trapano Script php che non va più' con Versione MySQL: 5.6 PHP 5
D [Javascript] Script che consenta di cambiare un'immagine in base all'ora del giorno della settimana Javascript 11
S Un aiuto su uno script di ricerca avanzata in php che sto verificando. PHP 1
E richiesta d'aiuto: script che trasformi il test contenuto (a video) da una pagina in Object x mail PHP 0
L Realizzare script con grafico e tabelle che si aggiornano automaticamente jQuery 1
Devil-94 Javascript: script che permetta di inserire immagini in un certo elemento html. Javascript 2
C Dovrei creare un piccolo script che mi comunichi che questo è stato eseguito PHP 4
giancadeejay Script che da 2 immagini in errore PHP 10
C Script Javascript/Html che con internet Explorer non viene visualizzato. Javascript 7
Monital Riconoscere l'utente che interagisce con lo script PHP 3
C Creare uno script che fa comparire immagini casuali sul sito Javascript 16
M problema script che forza il download PHP 0
V Script per distanza indirizzi [era: Script Php che non capisco se funzioni !] PHP 2
V Script che funziona se azionato da solo...che non funziona se inserito nel sito PHP 2
F script che legga un datafeed PHP 7
7 Script php che legge un dato da pagine web e lo confronta con un altro su csv... PHP 2
V script che vanno in conflitto Javascript 0
A lan chiusa ma script che devono colloquiare via web Web Server 2
D Salvare file su PC client invece che su server - Script XDCC Fetcher PHP 3
P Cerco coder esperto che conosca xzero script Programmazione 0
M Cerco script che verifica aggiornamento immagine PHP 2
U aggiungere resize a script che effettua slideshow dei file contenuti in una cartella Javascript 0
neo996sps Script per backup DB MySQL automatizzato che non va. PHP 8
S script php che raccoglie form javascript e lo invia tramite mail PHP 0
R Cerco Script che visualizza ultimi messaggi forum Javascript 4
F Problemi con Explorer su uno script Ajax che richiama un asp Ajax 0
C Script preload che funziona solo con IE... Javascript 0
D Cerco qualche webmaster che riesca a inserirmi uno script per una coregistrazione Offerte e Richieste di Lavoro e/o Collaborazione 0
M Script che funziona a tempo Javascript 3
D script dizionario che funziona male Flash 0
S C'è qualcuno che ha testato lo script AGWS Directory - Gestione Link? PHP 1
G sto cercando uno script che crei uno spot ... Javascript 1
H java script che nasconde dei link.. Javascript 0
A Chi è capace? (Integrazione di form mail php in una pagina che sfrutta script .js) PHP 6
4 conoscete qualche sito che offre script? PHP 2
P Passare solo alcuni parametri a script per CSV PHP 0
M Collegamento tra form html e script php PHP 4
F Script java elenco alfabetico non funziona Javascript 3
F Script non funzionante. Devo elencare in ordine alfabetico un elenco di nominativi, ma lo script non Javascript 2
P Script upload immagini jQuery 0
M Premature end of script headers PHP 1
Cosina script data aggiornamento pagina Javascript 1
R Distribuire uno Script "Facebook Auto Post" PHP 0
F Creazione script Tv Presentati al Forum 1
N Script elenco file HTML HTML e CSS 5

Discussioni simili