• Super User

    [PHP] Monitorare una pagina web ciclicamente

    Buongiorno a tutti,
    ho necessità di monitorare una pagina web ciclicamente ogni X minuti.

    In dettaglio:

    • la pagina web è protetta da login (ovviamente ho un account a disposizione)
    • il body della pagina da monitorare è abbastanza semplice, ho N div ognuno con un ID

    I div presenti nella pagina sono fissi, periodicamente ne viene aggiunto uno nuovo per un arco di tempo limitato (variabile).
    Quando viene aggiunto un div non presente nella lista di quelli statici, lo script invierà una mail di notifica.

    Non ho idea di come leggere il contenuto della pagina, esiste una libreria da poter utilizzare?
    Suggerimenti?

    Grazie.


  • Moderatore

    Ciao felino :ciaosai:
    non ho capito benissimo cosa vorresti fare, ma se quello che cerchi è un modo per leggere i nodi HTML, in php esiste la classe DOMDocument.
    La guida la trovi qui: https://www.php.net/manual/en/class.domdocument.php
    Questa classe ti permette di manipolare l'intero DOM come vuoi. Facciamo un esempio. Volendo accedere ad un determinato nodo identificato con id "nodo" e prelevare il suo contenuto, potrei scrivere una cosa di questo tipo:
    [PHP]
    <?php
    $dom = new DOMDocument();
    $html ='<html>
    <body>Hello <b id="nodo">World</b>.</body>
    </html>';
    $dom->validateOnParse = true;
    $dom->loadHTML($html);

    $dom->preserveWhiteSpace = false;

    $element = $dom->getElementById("nodo");
    echo $element->nodeValue;
    // stamperà a video World
    ?>
    [/PHP]

    Ora supponendo che la pagina la prelevi on line:

    [PHP]
    <?php
    $dom = new DOMDocument();
    $html = file_get_contents( '//www.miapagina.com' );
    $dom->validateOnParse = true;
    $dom->loadHTML($html);
    // segue il resto del codice
    ?>
    [/PHP]

    Comunque ci sono diverse guide nel web reperibili facilmente ed anche diverse soluzioni su stackoverflow, quindi non dovresti avere problemi. In caso, ti do una mano.


  • Super User

    Molto interessante, grazie per la documentazione, gli do subito un'occhiata! 🙂