:: Anbieterverzeichnis :: Globale Branchen
:: 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!
|
|
Ä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ändert';
}
else {
echo 'Website wurde geändert';
// Veränderten Hashwert holen
$newHash = $update -> getHash( );
echo '<br>' . $newHash;
}
|
Ausgabebeispiel: Browseransicht
|
|
|
|
|
:: 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!
|