Teil von  SELFPHP   Teil von  Code Snippets / PHP / HTTP
  +++ SELFPHP CronJob-Service :: Jetzt auch als Professional-Version verfügbar! +++



:: Anbieterverzeichnis ::

Globale Branchen

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

 

:: SELFPHP Forum ::

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

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

:: Qozido ::

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.   

 
 
Änderungen an einer Webseite mittels Hash-Wert feststellen





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


Premium-Partner MECO Systemhaus GmbH & Co. KG
Premium-Partner PSW GROUP GmbH & Co. KG
Premium-Partner BPI-Systeme
Premium-Partner Pixel X
Premium-Partner
 

:: SELFPHP Sponsoren ::


Microsoft Deutschland GmbH
twosteps.net - ...Premium-Webhosting
Sedo - Bei uns wird PHP großgeschrieben
hostfactory.ch - OptimaNet Schweiz AG
ZEND - The PHP Company
Kaspersky Labs
HighText iBusiness
SELFPHP Sponsoren
 

Qozido


© 2001-2009 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt