Script php per IP camera

  • Creatore Discussione Creatore Discussione Fabri74
  • Data di inizio Data di inizio

Fabri74

Nuovo Utente
28 Nov 2015
6
0
0
Salve.
Premetto che ho cercato nel forum e ho già provato lo script di un utente, questo http://forum.mrwebmaster.it/php/42403-codice-php-x-webcam.html
Non risolve il mio problema in quanto la mia IP camera, che invia attraverso ftp ogni 15 minuti le immagini, crea ogni giorno una cartella nuova, es. 20151128 quella di oggi e così via. Sarebbe possibile avere uno script da inserire nell'index che prenda le immagini della cartella creata ogni giorno dalla webcam?
Io sono riuscito a fare questo http://ozierimeteo.altervista.org/20151123/webcam.php, ma così dovrei ogni giorno spostare lo script php nella cartella nuova che la ipcam mi crea.
Grazie a chi risponde, spero nell'aiuto di qualcuno, sono settimane che non ne vengo a capo.
Fabrizio
 
Ciao,

Il link che hai postato non porta a nulla!
Se ho capito bene ti basta uno script che ti faccia vedere il contenuto delle cartelle che la tua webcam crea giornalmente?
 
Ciao,

Il link che hai postato non porta a nulla!
Se ho capito bene ti basta uno script che ti faccia vedere il contenuto delle cartelle che la tua webcam crea giornalmente?

Si grazie, ho trovato il modo per farlo

Così

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "................................................. .......">
<html xmlns="..............................." lang="it" xml:lang="it" dir="ltr">
<head>
<title>WebCam</title>
</head>
<body>

<?php
$ts = 0;
$img = "";
$dir = "./".date("Ymd");
if (is_dir("$dir")) {
if ($dh = opendir("$dir")) {
while (($file = readdir($dh)) !== false) {
if(is_file("$dir/$file")) {
$tsf = filemtime("$dir/$file");
if($tsf >= $ts) {
$img = $file;
$ts = $tsf;
}
}
}
closedir($dh);
}
}
print("<img src=\"$dir/$img\" border=\"0\" width=\"640\" height=\"480\">\n");
?>
</div>
<div>Ancora html</div>
</body>
</html>


Mi servirebbe un modo per eliminare la cartella il giorno dopo
 
Ciao ma il server è altervista?

Se si non credo tu possa creare un demone che ti cancelli la cartella autonomamente, al massimo dovrai collegarti ad un script php per cancellare la cartella.
A questo punto non dovresti prima vedere il contenuto prima di cancellarlo?
 
Ciao ma il server è altervista?

Se si non credo tu possa creare un demone che ti cancelli la cartella autonomamente, al massimo dovrai collegarti ad un script php per cancellare la cartella.
A questo punto non dovresti prima vedere il contenuto prima di cancellarlo?

Mi spiego. Si il server è altervista. Il mio problema principale, che ho risolto, era fare uno script php che mi prendesse l'immagine inviata tramite ftp dalla ipcam e me la facesse vedere nel sito, questo
http://www.ozierimeteo.altervista.org/webcam.php.
Ora, ogni giorno, la ip cam mi crea una cartella diversa, 20151130, quella di oggi. All'interno ci sono le immagini della webcam, io ogni due tre giorni tramite filezilla cancello le cartelle vecchie, anche perchè non le utilizzerò più le immagini dei giorni precedenti.
C'è un modo perchè si possano cancellare queste cartelle anzichè cancellarle manualmente io?
 
Ciao,

Ti ripeto non potendo inserire dei demoni che si auto-eseguono ad un ora stabilita, dovrai eseguire uno script ogni volta che ti colleghi che ti cancella le cartelle con numero inferiore a quella creata con la data di oggi!

Prova questo e fammi sapere
PHP:
<?php
$f = date("Ymd");
for ($i = "20150101" ; $i < $f ; $i++){
$dirdel = "./".$i;
if (is_dir($dirdel)){
$dir = @opendir($dirdel); 
while ($file = @readdir($dir)) { 
@unlink($dirdel."/".$file);
} 
@closedir($dir); 
if (@!rmdir($dirdel))
{ 
echo "Errore durante l'eliminazione!".$dirdel."<br>"; 
} 
else 
{ 
echo "Cartella eliminata con successo! ".$dirdel."<br>"; 
}
$i++;
}
$i++;
}
?>
 
Ma sta IP cam non è possibile settarla per mandare le immagini sempre nella stessa cartella sovrascrivendo quelle esistenti?

No Marco, purtroppo no, se no avrei già risolto da tempo.
Il mio ftp arriva a 30 lettere e lo spazio dedicato al ftp nelle impostazioni della IP cam è di 30 lettere.
Comunque ho risolto tutto con un file php che genera l'immagine e prende le immagini dalla cartella nuova.
Grazie a tutti per le info.
P.S: potrei mettere il file php creato nella discussione?, potrebbe essere d'aiuto ad altri
 
No Marco, purtroppo no, se no avrei già risolto da tempo.
Il mio ftp arriva a 30 lettere e lo spazio dedicato al ftp nelle impostazioni della IP cam è di 30 lettere.
Comunque ho risolto tutto con un file php che genera l'immagine e prende le immagini dalla cartella nuova.
Grazie a tutti per le info.
Sì ma ti costringe a cancellare il vecchio, è sempre un lavoro.
P.S: potrei mettere il file php creato nella discussione?, potrebbe essere d'aiuto ad altri
Magari, così si contribuisce a migliorarlo al limite :)
 
Prova anche questo script:
PHP:
<?php
    try {
        $dataOdierna = date( 'Ymd' );
        $anno = date( 'Y' ) . '0101';
        while ( $cartella < $dataOdierna ) {
            $dir __DIR__ . "/$cartella";
            if ( is_dir( $dir )){
                $files = array();
                $files = array_diff( scandir( $dir ), array( '.', '..' )); 
                foreach ( $files as $file ) {
                    if ( !unlink( "$dir/$file" )) {
                        throw new Exception( 'Tentando di cancellare il file <strong>' . $file . '</strong>, si è verificato un errore!' );
                    }
                }
                if ( !rmdir( $dir )) {
                    throw new Exception( 'Tentando di cancellare la cartella <strong>' . $dir . '</strong>, si è verificato un errore!' );
                }
            }
            $cartella++;
        }
    }
    catch( Exception $err ) {
        echo 'Si è verificato un errore grave!<br><br>';
        echo $err->getMEssage() . '<br><br>Nel file: ' . $err->getFile() . ' alla linea ' . (int)$err->getLine();
    }
?>
Dovrebbe essere anche un po' più efficiente evitando di dover entrare nella cartella da distruggere per cancellare i file, ma facendolo da fuori dovrebbe essere leggermente più veloce, anche se penso che la velocità ti importa poco.

PS l'ho costruito partendo da quello di @alankanz e non ho avuto modo di provarlo, quindi dimmi se c'è qualche problema e quale :)
 
Questo è il file che ho che crea l'immagine, prende i dati da una cartella creata giornalmente dalla IP Cam

<?php
$dataoggi = date("Ymd");
//$partefinale = "01/pic/";

//path to directory to scan.
$directory_init = "/membri/miosito";


$directory = $directory_init . "/". $dataoggi ."/";

//echo $directory;

//get all image files with a .jpg extension.
$images = glob("" . $directory . "*.JPG");

//echo $images;

$imgs = '';
// create array
foreach($images as $image){ $imgs[] = "$image"; }


//select last 20 images in ordered array
$imgs = array_slice($imgs, -2, 2);

//echo $imgs;
//$img = substr($imgs, -20);

//display images


$temp_curr = "$imgs[1]";

//echo $temp_curr;
$temp_curr = substr($temp_curr, 20);
//echo $temp_curr;
//$filepath = "{$directory}/{$temp_curr}";

// File
$link = "http://miosito.altervista.org/";
$link2 = $link . $temp_curr;
$source = imagecreatefromjpeg($link2);

//echo $link2;

//$thumb = imagecreatetruecolor(1270, 714);
$percent = 1.2;

//imagecopyresampled($thumb, $source, 0, 0, 0, 0, 1270, 714, 1270, 714);

header("Content-type: image/jpeg");
imagejpeg($source);

?>

Spero possa servire ad altri
 
Fai così:
PHP:
//path to directory to scan.
$directory_init = "/membri/miosito";

$directory = $directory_init . "/". $dataoggi ."/";
Diventa:
PHP:
//path to directory to scan.
$directory = __DIR__ . "/$dataoggi/";
Quelle due virgolette che servono scusa?
PHP:
$images = glob("" . $directory . "*.JPG");
Toglile! :D no davvero ma perché ce le hai messe?
 

Discussioni simili