Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Come eliminare immagini giorni precedenti

    Salve a tutti! premetto che non ci capisco niente di programmazione (di qualsiasi linguaggio si parli)
    Leggo il forum e scopiazzo qua e la cercando di comprendere più o meno il funzionamento di quello che faccio...ma li mi fermo.

    Devo realizzare ad uso personale una paginetta dove si visualizzi l'immagine di una telecamera IP con un refresh che può essere di 5 minuti come di mezz'ora o un'ora (poi deciderò)

    La telecamera Ip per ora salva le foto ad intervalli sul server AlterVista

    Questo è quello che sono riuscito a fare scopiazzando


    Codice PHP:

      <?php
    $files 
    glob("./IMMAGINI/*.jpg");
    $mtimes = array();

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

    $files array_combine($mtimes$files);
    ksort($files);

    $last array_values($files);
    $last $last[count($last) - 1];

    copy($last'webcam.jpg'); // copio ultima immagine $last e rinomino in webcam.jpg

    $font "verdana.ttf";//Font
    $ima imagecreatefromjpeg("webcam.jpg");//prendo l'immagine
    $textcol imagecolorallocate($ima,255,0,0);//Prendo il colore rosso per il testo
    list($larg,  $altez$uno$due) = getimagesize("webcam.jpg"); //Metto nelle  variabili $larg e $altez la larghezza e l'altezza dell'immagine con  l'array getimagesize()
    imagettftext($ima,15,0,$larg-450,$altez-20,$textcol,$font"qui inserisco il testo");
    imagepng($ima,"webcam2.png");//trasformo, per comodità mia, l'immagine in webcam2.png e la scrivo
    echo "<img alt=\"\" src=\"webcam2.png\">";
    imagedestroy($ima);
    ?>

    Il codice php è inserito qui dentro


    codice HTML:
    <html>
      <head>
        <meta http-equiv="refresh" content="30"/>
        <meta http-equiv="expires" content="0"/>
        <style>
        html, body { margin: 0; padding: 0; }
        img { display: block; width: 1280px; height: 800px; }
        </style>    
      </head>
      <body>
      
      <?php
    qui c'è il codice php
    ?>
    
      </body>
    </html>

    Quest'altra paginetta richiama la prima


    codice HTML:
    <html>
    <head>
      <meta charset="utf-8">
      <meta name="generator" content="AlterVista - Editor HTML"/>
      <title></title>
    </head>
    <body>
    
    <iframe src="webcam.php" style="width: 1280px; height: 800px; border: 1;"></iframe>
    
      <p>&nbsp;</p>
    
    </body>
    </html>

    Il risultato è questo:

    http://tecnotest.altervista.org/WEBCAM/webcam.html

    Diciamo che così già mi va bene, il problema è che le immagini sul server AlterVista aumentano a dismisura e non è possibile toglierle quotidianamente.
    Quello che chiedo e' possibile aggiungere uno script che ogni volta che la pagina si apre elimina automaticamente tutte le immagini dei giorni precedenti e lascia solo quelle del giorno odierno?
    Qualche riga già pronta sarebbe l'ideale ma anche qualche indicazione su dove scopiazzare andrebbe bene

    Grazieee
    Ultima modifica di giorgio972; 20-05-2016 a 13:30

  2. #2
    Scusate non ho capito nulla su come inserire un titolo

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2011
    residenza
    Arezzo
    Messaggi
    194
    la funzione filemtime() ti restituisce il timestamp del file (tipo 1463600334), dove chiaramente più è recente la data più è alto il numero.

    a questo punto hai die strade, o trovi il timestamp di, ad esempio, 20-05-2015 00:00 e cancelli tutti i file con timestamp inferiore a questo, oppure fai il contrario, trasformi i timestamp ricevuti in data ora (o solo data) e cancelli poi quelli che vuoi

    Codice PHP:
    // da timestamp a data ora
    $timestamp filemtime('file');
    date("d-m-Y H:i"$timestamp);

    // da data a timestamp
    $data "20-05-2016";
    list(
    $d,$m,$y) = explode('-'$data);
    mktime(0,0,0,$m,$d,$y); 
    Riccardo Sadocchi
    Microsoft MCP C#

  4. #4
    Quote Originariamente inviata da rikyeko Visualizza il messaggio
    la funzione filemtime() ti restituisce il timestamp del file (tipo 1463600334), dove chiaramente più è recente la data più è alto il numero...
    Intanto ti ringrazio tantissimo per avermi risposto (anche se sul titolo ho scritto [HELP])

    Diciamo che non ho capito granchè però mi hai dato uno spunto per cominciare a cercare

  5. #5
    Allora, avrei pensato ad una soluzione molto semplice; vorrei provare semplicemente con unlink.
    All'apertura della pagina dovrebbe cancellare automaticamente tutti i file con estensione JPG presenti nella cartella IMMAGINI, tanto fino a che la camera IP non salva la successiva immagine c'è la copia JPG e la copia PNG nella directory principale WEBCAM (e sono quelle che a me in quel momento effettivamente servono)
    Ho provato con questo codice in una paginetta da solo

    Codice PHP:
     <?php
     
    foreach (glob("./IMMAGINI/*.jpg") as $filename) {
       echo 
    "$filename size " filesize($filename) . "\n";
       
    unlink($filename);
    }

    ?>
    Funziona! mi cancella tutti i files JPG però mi restituisce il loro nome e size a video
    immagino sia echo
    Ho provato a modificarlo così (io mi invento le cose)

    Codice PHP:
     <?php
     
    foreach (glob("./IMMAGINI/*.jpg") as $filename)
    unlink($filename);

    ?>
    e così

    Codice PHP:
    <?php
     
    foreach (glob("./IMMAGINI/*.jpg") as $filename)
    unlink("./IMMAGINI/*.jpg");

    ?>
    ma non funziona. Dove sbaglio?
    Tra l'altro potrei inserirlo di seguito al codice php che mi trasforma webcam.jpg in webcam2.png???

    grazie!!!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2011
    residenza
    Arezzo
    Messaggi
    194
    prova così, credo dovrebbe andare bene

    Codice PHP:
    foreach (glob("./IMMAGINI/") as $filename){
        if(
    $filename != "." && $filename != ".."){
            
    unlink($filename);
        }

    in questo modo cancelli tutti i file dentro la cartella immagini


    o in ogni caso anche così dovrebbe andare
    Codice PHP:
    foreach (glob("./IMMAGINI/*.jpg") as $filename){
        
    unlink($filename);

    cioè uguale alla tua prova ma con le {}
    Ultima modifica di rikyeko; 20-05-2016 a 17:04
    Riccardo Sadocchi
    Microsoft MCP C#

  7. #7
    Quote Originariamente inviata da rikyeko Visualizza il messaggio
    prova così, credo dovrebbe andare bene

    Codice PHP:
    foreach (glob("./IMMAGINI/") as $filename){
        if(
    $filename != "." && $filename != ".."){
            
    unlink($filename);
        }

    in questo modo cancelli tutti i file dentro la cartella immagini


    o in ogni caso anche così dovrebbe andare
    Codice PHP:
    foreach (glob("./IMMAGINI/*.jpg") as $filename){
        
    unlink($filename);

    cioè uguale alla tua prova ma con le {}
    Il primo non mi funziona (forse sbaglio qualcosa) il secondo si!!! Ora faccio un pò di prove e vedo se così può funzionare

    Grazieeee

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2011
    residenza
    Arezzo
    Messaggi
    194
    bene!
    Riccardo Sadocchi
    Microsoft MCP C#

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.