bene, allora prova a modificare lo script cosi:
Codice:<?php $folder="percorso/webcam"; // MODIFICA PERCORSO CARTELLA $fttime=time()-86400; // Limite di inizio in secondi $sublim=date("ymdHi",$fttime); $images=array(); if ($handle=opendir($folder)) { while (($file=readdir($handle)) !== false) { if(($file!=".")&&($file!="..")) $images[]=$file; } foreach ($images as $val) { $subname=substr($val,1,10); if ($subname<$sublim) unlink($folder."/".$val); } } ?>
Nuovo sito: Meteosfera
Reti: MNW - WU - Sup.
"Colui che segue la folla non andrà mai più lontano della folla. Colui che va da solo sarà più probabile che si troverà in luoghi dove nessuno è mai arrivato" (Albert Einstein)
Stazione Meteo Bientina loc. Quattro Strade (Pisa)
http://my.meteonetwork.it/station/tsc174/
www.meteobientina.altervista.org
ciao ragazzi, mi accodo per chiedere un supporto.
ho un file php per la gestione delle ip cam (il noto "problema" dei nomi progressivi dei files che vanno "convertiti" in un file con medesimo nome) fatto così
?php
header("Refresh: 60; url=" . $_SERVER["PHP_SELF"]);
// prepara l'array per i nomi dei file
$directory = array();
// prepara l'handler per la directory
$handler = opendir('../snap');
// apre la directory e legge i singoli nomi dei file
while ($file = readdir($handler)) {
// se il nome del file contiene il testo iniziale imposto dalla ipcamera lo mette nell'array
if (substr("$file", 0, 8) == "Schedule") {
$directory[] = $file;
}
}
// chiude l'handler
closedir($handler);
// ordina la lista dei file per nome (il piu' nuovo sara' l'ultimo)
sort($directory);
// conta i file
$fileCount = count($directory);
$fileCount2 = $fileCount - 2;
// copia il file piu' nuovo in webcam.jpg
// $index corrispondera' all'ultimo elemento dell'array (il primo e' 0)
$index = $fileCount - 2; // era -1 modifica 24-07-2014
$fileDaCopiare = $directory[$index];
copy($fileDaCopiare, 'webcam.jpg');
// cancella tutti i file i cui nomi sono nell'array
for($index=0; $index < $fileCount2; $index++) {
$fileDaCancellare = $directory[$index];
unlink($fileDaCancellare);
}
$nome_immagine="webcam.jpg"; // file contenente l'immagine
$nome_testo="testo.txt"; // file contenente le scritte
$fp = fopen($nome_testo,"r")
or die("impossibile aprire il file testo.txt.");
$testo_sinistra=fgets($fp,100); // nella prima riga la scritta allineata a sinistra
$testo_destra=fgets($fp,100); // nella seconda riga la scritta allineata a destra
if ( $testo_destra = "data" )
{
setlocale(LC_TIME,"it_IT");
$testo_destra=strftime ("%a %d %b %Y %H:%M:%S", filemtime($fileDaCopiare)); // era nome_immagine mod 28-07-2014
}
fclose($fp);
header("Content-type: image/png");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
$im = imagecreatefromjpeg($nome_immagine);
//$black = imagecolorallocate($im, 0, 0, 0);
//$white = imagecolorallocate($im, 255, 255, 255);
$colore_barra = imagecolorallocate($im, 0, 127, 255); // colore della barra formato RGB
$colore_testo = imagecolorallocate($im, 255, 255, 255); // idem per testo
$x=imagesx($im);
$y=imagesy($im);
$font = "VeraBd.ttf";
$size = 12; // dimensione del testo
$altezza_barra = 30; // dimensione della barra
imagefilledrectangle($im, 0, $y-$altezza_barra, $x-1, $y-1, $colore_barra);
$bbox = imagettfbbox ($size, 0, $font, $testo_sinistra);
$dy = (($bbox[1] - $bbox[7]) / 2);
imagettftext($im, $size, 0, 5, $y-($altezza_barra / 2) + $dy - 1, $colore_testo, $font, $testo_sinistra);
$bbox = imagettfbbox ($size, 0, $font, $testo_destra);
$dx = ($bbox[2] - $bbox[0]);
imagettftext($im, $size, 0, $x-5-$dx, $y-($altezza_barra / 2) + $dy - 1, $colore_testo, $font, $testo_destra);
imagepng($im);
imagedestroy($im);
?>
questo funziona bene per files che hanno nome come questo: Schedule_20171110-220942.jpg
ho invece una nuova IP cam che crea files con questo nome: webcam_141731404_20180922110414930_TIMING.jpg
quale variazione devo apportare al codice per permettergli di lavorare con il nuovo file? dal punto di vista logico non ci vedo differenze di sorta ma il codice as is non funziona e lo script non gira
grazie mille
ciao, prova a cambiare questa riga:
in questo modo:Codice:if (substr("$file", 0, 8) == "Schedule") {
ovviamente dovresti cambiare anche il path della cartella che suppongo non sia /snap:Codice:if (substr("$file", 0, 6) == "webcam") {
Codice:$handler = opendir('pathcartella');
Nuovo sito: Meteosfera
Reti: MNW - WU - Sup.
"Colui che segue la folla non andrà mai più lontano della folla. Colui che va da solo sarà più probabile che si troverà in luoghi dove nessuno è mai arrivato" (Albert Einstein)
Ottimo, grazie mille, funziona!
update: fatto insolito, una volta eseguite le modifiche e applicato, al lancio dello script (aprendo l'url di webcam.php) il file si cancella dall'area ftp.
Che cosa può essere?
Ultima modifica di bufera87; 24/09/2018 alle 22:32
intendi nella cartella "webcam" dove viene fatto l'upload?
Con questo script dovrebbero rimanere gli ultimi 2 file più recenti (variabile $fileCount2) e, non avendo fatto modifiche a quelle righe, dovrebbe rimanere impostato in quel modo.
Altra domanda: la parte del nome che hai indicato ed evidenziata in grassetto
"webcam_141731404_20180922110414930_TIMING.jpg"
rimane fissa per tutti i file?
Nuovo sito: Meteosfera
Reti: MNW - WU - Sup.
"Colui che segue la folla non andrà mai più lontano della folla. Colui che va da solo sarà più probabile che si troverà in luoghi dove nessuno è mai arrivato" (Albert Einstein)
ciao, confermo che i due ultimi files sono
webcam_141731404_20180922111154829_TIMING.jpg
e
webcam_141731404_20180922111317770_TIMING.jpg
mi sono accorto che avevo commesso un errore nella scrittura del path della cartella, e così facendo accadeva esattamente quanto dicevo prima: il file webcam.php si auto-eliminava dalla cartella stessa..
ora invece con il path corretto funziona correttamente
Grazie mille davvero per il supporto
Rieccomi
ora il problema è che lo script sembra non girare, è forse legato al fatto che le immagini sorgente sono troppo grandi (400-500kb)? ecco il codice attuale
<?php
header("Refresh: 60; url=" . $_SERVER["PHP_SELF"]);
// prepara l'array per i nomi dei file
$directory = array();
// prepara l'handler per la directory
$handler = opendir('webcam_new/vittorio');
// apre la directory e legge i singoli nomi dei file
while ($file = readdir($handler)) {
// se il nome del file contiene il testo iniziale imposto dalla ipcamera lo mette nell'array
if (substr("$file", 0, 6) == "webcam") {
$directory[] = $file;
}
}
// chiude l'handler
closedir($handler);
// ordina la lista dei file per nome (il piu' nuovo sara' l'ultimo)
sort($directory);
// conta i file
$fileCount = count($directory);
$fileCount2 = $fileCount - 2;
// copia il file piu' nuovo in webcam.jpg
// $index corrispondera' all'ultimo elemento dell'array (il primo e' 0)
$index = $fileCount - 2; // era -1 modifica 24-07-2014
$fileDaCopiare = $directory[$index];
copy($fileDaCopiare, 'webcam.jpg');
// cancella tutti i file i cui nomi sono nell'array
for($index=0; $index < $fileCount2; $index++) {
$fileDaCancellare = $directory[$index];
unlink($fileDaCancellare);
}
$nome_immagine="webcam.jpg"; // file contenente l'immagine
$nome_testo="testo.txt"; // file contenente le scritte
$fp = fopen($nome_testo,"r")
or die("impossibile aprire il file testo.txt.");
$testo_sinistra=fgets($fp,100); // nella prima riga la scritta allineata a sinistra
$testo_destra=fgets($fp,100); // nella seconda riga la scritta allineata a destra
if ( $testo_destra = "data" )
{
setlocale(LC_TIME,"it_IT");
$testo_destra=strftime ("%a %d %b %Y %H:%M:%S", filemtime($fileDaCopiare)); // era nome_immagine mod 28-07-2014
}
fclose($fp);
header("Content-type: image/png");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
$im = imagecreatefromjpeg($nome_immagine);
//$black = imagecolorallocate($im, 0, 0, 0);
//$white = imagecolorallocate($im, 255, 255, 255);
$colore_barra = imagecolorallocate($im, 0, 127, 255); // colore della barra formato RGB
$colore_testo = imagecolorallocate($im, 255, 255, 255); // idem per testo
$x=imagesx($im);
$y=imagesy($im);
$font = "VeraBd.ttf";
$size = 12; // dimensione del testo
$altezza_barra = 30; // dimensione della barra
imagefilledrectangle($im, 0, $y-$altezza_barra, $x-1, $y-1, $colore_barra);
$bbox = imagettfbbox ($size, 0, $font, $testo_sinistra);
$dy = (($bbox[1] - $bbox[7]) / 2);
imagettftext($im, $size, 0, 5, $y-($altezza_barra / 2) + $dy - 1, $colore_testo, $font, $testo_sinistra);
$bbox = imagettfbbox ($size, 0, $font, $testo_destra);
$dx = ($bbox[2] - $bbox[0]);
imagettftext($im, $size, 0, $x-5-$dx, $y-($altezza_barra / 2) + $dy - 1, $colore_testo, $font, $testo_destra);
imagepng($im);
imagedestroy($im);
?>
ma da quale momento non ha funzionato? Visto che dopo le modifiche sembrava tutto ok e il codice è rimasto il medesimo, a parte quelle 2 righe.
Non è che c'è stata qualche modifica nella risoluzione delle immagini scaricate, ad esempio?
Nuovo sito: Meteosfera
Reti: MNW - WU - Sup.
"Colui che segue la folla non andrà mai più lontano della folla. Colui che va da solo sarà più probabile che si troverà in luoghi dove nessuno è mai arrivato" (Albert Einstein)
Segnalibri