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

    esiste un programma che controlli se una pagina cambia?

    Esiste un qualche software che monitorizzi una pagina on-line con intervallo regolabile o cmq non superiore alla mezz'ora e controlli se questa cambia?


    altrimenti mi ci faccio uno script in php e lo lancio con crontab facendomi avvisare per e-mail.. ma preferirei la prima soluzione

  2. #2
    di programmi ce ne sono perchè mi è capitato spesso di trovarne cercando altre cose.. solo che non ne ricordo i nomi e, al momento, non mi viene in mente nessuna chiave di ricerca utile per google.

  3. #3
    insomma, sei totalmente inutile

    vabbè.. a sto punto provo a culo su google, o me lo faccio in php (che avrebbe il vantaggio di girare 24h su 24h mettendolo sul mio server e lanciandolo con crontab... ma che non vorrei mi ammazzasse troppo il server stesso... oltre a richiedere un po' di tempo per programmarlo in mdoo che mi avvisi solo la prima volta e si autoaggiorni alla nuova pagina subito dopo.. )

  4. #4
    Originariamente inviato da }gu|do[z]{®©
    insomma, sei totalmente inutile

    vabbè.. a sto punto provo a culo su google, o me lo faccio in php (che avrebbe il vantaggio di girare 24h su 24h mettendolo sul mio server e lanciandolo con crontab... ma che non vorrei mi ammazzasse troppo il server stesso... oltre a richiedere un po' di tempo per programmarlo in mdoo che mi avvisi solo la prima volta e si autoaggiorni alla nuova pagina subito dopo.. )
    in pratica si

    ho provato parecchie chiavi ma mi esce tutt'altro

    se trovi qualcosa posta, per favore...

  5. #5
    guarda.. non avendo trovato niente e preferendo anche farlo girare 24/24 (ad intervalli ma cmq 24/24) me lo son fatto in php e me lo son messo in crontab....

    ti incollo il codice anche se è solo una bozza (ma funziona per quel che serve a me)... quando lo migliorerò un po' lo metterò scaricabile sul mio sito assieme ad altre millemila fesserie del gnere

    codice:
    <?php
    
    ###################
    # CONFIGURAZIONI  #
    ###################
    
    $url2check   = 'http://www.guidoz.it/index.php';
    $baseurl     = 'http://www.guidoz.it/';
    $mailfrom    = "Guido <guidoz@email.it>";
    $mailto      = 'guidoz@email.it';
    $local_model = 'model';
    
    
    ###################
    # NON MODIFICARE  #
    ###################
    //funzione che rende assoluti i path relativi dei file
    //da rivedere e migliorare
    //http://forum.html.it/forum/showthread.php?postid=8715346
    function rel2abs($html,$base)
    {
      $regexp = '/(src=(\'|")(.*)(\'|"))/';
      $replace = "src=$2$base$3$4";
      $html = preg_replace($regexp, $replace, $html);
    
      $regexp = '/(href=(\'|")([^http].*)(\'|"))/';
      $replace = "href=$2$base$3$4";
      $html = preg_replace($regexp, $replace, $html);
    
      return $html;
    }
    
    //leggo file remoto
    if (!($remote = @file($url2check)))
    {
     echo "Impossibile trovare il file remoto";
     exit;
    }
    $remote = implode('',$remote);
    
    //la prima volta che viene lanciato lo script non esiste il file modello
    //quindi lo creo identico al file remoto
    if (!file_exists($local_model))
    {
      $fh = fopen($local_model,'w');
      fwrite($fh,$remote);
      fclose($fh);
    }
    
    //leggo il file modello
    $local = file($local_model);
    $local = implode('',$local);
    
    //confronto la pagina remota con il modello locale
    if ($remote===$local)
    {
       echo "La pagina non è cambiata";
    }
    else
    {
      echo "la pagina è cambiata";
      //preparo la mail con tutti gli header
      $mail_header = "From: $mailfrom\n";
      $mail_boundary = "==String_Boundary_x" .md5(time()). "x";
      $mail_header .= "MIME-Version: 1.0\n";
      $mail_header .="Content-Type: multipart/alternative;\n boundary=\"$mail_boundary\";\n\n";
    
      $mail_text = "Il tuo client non supporta i MIME\n\n";
    
      //mail in testo piano
      $mail_text .= "--$mail_boundary\n";
      $mail_text .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
      $mail_text .= "Content-Transfer-Encoding: 7bit\n\n";
      $mail_text .= "La pagina $url2check risulta essere cambiata rispetto al modello corrente.\nQuesto è il suo contenuto in testo piano:\n\n".strip_tags($remote)."\n\n";
    
      //mail in html
      $mail_text .= "--$mail_boundary\n";
      $mail_text .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
      $mail_text .= "Content-Transfer-Encoding: 7bit\n\n";
      $mail_text .= rel2abs($remote,$baseurl)."\n";
    
      $mail_text .= "--$mail_boundary--\n";
      //mail($mailto,"La Pagina $url2check è cambiata",$mail_text,$mail_header);
    
      //aggiorno modello
      $fh = fopen($local_model,'w');
      fwrite($fh,$remote);
      fclose($fh);
    }
    
    ?>
    credo che dai commenti sia abbastanza chiaro cosa fa... ma cmq.. per i non php-isti:

    alla prima invocazione crea un file chiamato "model" in cui copia la pagina che deve controllare.
    In tutte le chiamate successive confronta la pagina remota con il modello locale, se trova differenze allora manda una mail (con allegato il codice della pagina.. anche se ancora non funziona alla perfezione la funzione per convertire i path relativi con quelli assoluti.. e quindi la pagina non si vedrà perfetta) e salva la nuova pagina (quella modificata) nel file modello.. in modo che non venga mandata più di una e-mail per ogni cambiamento.

    Basta farlo lanciare da crontab ad un intervallo prestabilito.


    Scusate se sono leggermente OT essendo questo il forum SW... ma in mancanza di un'alternativa in SW vero e proprio (o in caso di esigenza di farlo girare 24/24) può essere utile ha chi ha un server a disposizione

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.