Teil von  SELFPHP   Teil von  Code Snippets / PHP / HTTP
Professional CronJob-Service

Suche

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP?
In über 130.000 Beiträgen finden Sie sicher die passende Antwort!  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 
 
Änderungen an einer Webseite mittels Hash-Wert feststellen

SELFPHP ist Shopware Solution Partner
Shopware ist ein vielfach ausgezeichnetes Onlineshop-System der shopware AG, das auf PHP. Zend Framework und SQL basiert.
SELFPHP unterstützt Sie als Shopware Solution Partner bei der Konzeption, Programmierung und Realisierung Ihres Onlineshops und passt Shopware bei Bedarf an Ihre Unternehmensbedürfnisse an. Weitere Informationen




Beispielaufgabe

Änderungen an einer Webseite feststellen.



Beschreibung

Die PHP5 Klasse websiteUpdate() ermittelt den Hashwert ( mittels sha256 ) einer Website. Speichert man diesen Hash-Wert in einer Datenbank, kann zu einer späteren Zeit ein Vergleich angestellt werden, um zu ermitteln, ob die Seite sich verändert hat. Mit diesem Hash-Wert können nicht die Veränderungen ermitteln werden, sondern lediglich der Zustand einer Änderung. Neben Webseiten können z.B. auch Dateien auf Änderungen hin überprüft werden.




Datenbank-Layout

--
-- Tabellenstruktur für Tabelle `website-check-update`
--

CREATE TABLE IF NOT EXISTS `website-check-update` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`url` varchar(254) NOT NULL,
`hash` varchar(64) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `url` (`url`),
UNIQUE KEY `hash` (`hash`)
) ENGINE=MyISAM AUTO_INCREMENT=1 ;



<?PHP 

class websiteUpdate {
    
    
/**
     * @var string    Hash
     */
    
private $hashalgo    ''
    
    
/**
     * @var string    Hash 
     */
    
private $hashput    ''
    
    
/**
     * @var string    Source
     */
    
private $source    ''
    
    
/**
     * Constructor
     * 
     */
    
function __construct( ) {
                    
    }
    
    
/**
     * Holt den Inhalt der Website und bildet daraus
     * einen Hash mit SHA256
     * 
     * @param    string    $website    Website URL
     * 
     * @return    bool    True
     */
    
public function fetchWebsite $website NULL ) {
        
        
$this->source file_get_contents $website );
        
$this->hashalgo hash('sha256',$this->source); 
        
        return 
true;
        
    }
    
    
/**
     * Gibt die komplette Website aus
     * 
     * @return    string    Der HTML-Quellcode
     */
    
public function getWebsite () {
        
        return 
$this->source;
        
    }
    
    
/**
     * Gibt den Hashwert der Website zurück
     * 
     * @return    string    Hash-Wert
     */
    
public function getHash () {
        
        return 
$this->hashalgo;
        
    }
    
    
/**
     * Speichert den Wert z.B. aus einer Datenbank
     * zwischen
     * 
     * @return    string    Hash-Wert
     */
    
public function putHash $oldHash ) {
        
        
$this->hashput $oldHash;
        
        return 
true;
        
    }
    
    
/**
     * rüft Hashwert der Website zurück
     * 
     * @return    string    Hash-Wert
     */
    
public function compareHash ( ) {
        
        if ( 
$this->hashput == $this->hashalgo ) {
            return 
true;
        }
        else {
            return 
false;
        }
            
    }
}

?>



Anwendungsbeispiel

include("websiteUpdate.php");

// Aktueller Hash-Wert von 
// http://www.selfphp.de/code_snippets/files/hash.html
$hashFromDatabase = '22cf68c5b87fd0b76e456df78229e114a48dfdd189e3ebafe9a2e7325b5a8765';

$url = 'http://www.selfphp.de/code_snippets/files/hash.html';

$update = new websiteUpdate( );
$update -> fetchWebsite( $url );
$update -> putHash( $hashFromDatabase );

if ( $update -> compareHash() ) {
    
    echo 'Website ist unver&auml;ndert';
    
}
else {
     
    echo 'Website wurde ge&auml;ndert';
    
    // Veränderten Hashwert holen
    $newHash = $update -> getHash( );
    echo '<br>' . $newHash;
}



Ausgabebeispiel: Browseransicht

Website ist unverändert








 




:: Premium-Partner ::

Webhosting/Serverlösungen

PSW GROUP GmbH & Co. KG weitere Premium-Partner
 

:: SELFPHP Sponsor ::

HighText Verlag Graf und Treplin OHG weitere Sponsoren
 


:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Webhosting/Serverlösungen

Suchen Sie den für Sie passenden IT-Dienstleister für Ihr Webhosting-Paket oder Ihre Serverlösung?

Sie sind nur ein paar Klicks davon entfernt!


 

Ausgewählter Tipp im Bereich PHP-Skripte


Spezielle Filtermechanismen für Dateien und Verzeichnisse

Weitere interessante Beispiele aus dem SELFPHP Kochbuch finden Sie im Bereich PHP-Skripte
 

SELFPHP Code Snippet


Umgang mit AJAX und PHP ohne ein JavaScript Framework

Weitere interessante Code Snippets finden Sie auf SELFPHP im Bereich PHP Code Snippets
 
© 2001-2024 E-Mail SELFPHP Inh. Damir Enseleit, info@selfphp.deImpressumKontakt