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.
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);
?>
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.
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";
}
?>
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.
<?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";
}
?>
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,,,