Home Sitemap Impressum
SEO Welten - Webcoding, Editoren, Scripte und Anwendungen

Webcoding - Ein Script / Listing zum Cachen von XML-Dokumenten

Voraussetzung: Mindestens PHP 5.1.2 (oder höher)

Nach dem auf der Seite Ein einfaches Script ... vorgestellt wurde und auf der Seite Script zur... eine geringfügige Abwandlung von diesem Listing für eine Ausgabe mit ISO erfolgte, soll ergänzend noch auf eine Version mit Cache eingegangen werden.

Laut den Richtlinien von Amazon soll ein Script nicht mehr als maximal eine Anfrage pro Sekunde an den Server senden. Bei der überwiegenden Mehrzahl aller Websiten liegen die Besucherzahlen monatlich vermutlich eher in einem vierstelligen, maximal in einem fünfstelligen Bereich, so dass dieser Punkt eigentlich beinahe vernachlässigbar wäre. Webmaster, deren Websiten und Webprojekte deutlich höhere Besucherzahlen vorzuweisen haben, sind hingen eher selten anzutreffen. Und wenn, so liegen bei ihnen die Umsätze in einem deutlich höheren Bereich, der sehr viel Professionalität voraussetzt, zumal diese Webprojekte in der Regel von Unternehmen ins Leben gerufen werden. Ohne richtig gut bezahlte Programmierer, die ihren Brötchengebern maßgeschneiderte Projekte fertigen, geht es in diesen Bereichen selten ab. Unsere Scripts sind hingegen mehr auf den durchschnittlichen Webmaster zugeschnitten.

Ob große oder kleine Projekte und Zugriffszahlen, wer mit gelegentlich erhöhten Besucherzahlen rechnet, derjenige sollte zumindest ein Script verwenden, welches von den Ergebnissen der Startseite einen Cache anlegt, oder von der Startseite und den jeweiligen Einstiegsseiten zu den einzelnen Rubriken. Alles was dazu erforderlich ist, besteht in der Anlegung eines zusätzlichen Ordners für die gecachten XML-Dateien und wie unten aufgeführt, in der Ergänzung des bisherigen Listings um einige weitere Codezeilen.
Wie bereits mehrfach erwähnt, die Dokumente mit den Scripts sind in validem HTML 4.01 Transitional geschrieben. Wenn Sie es in ein Template mit einer anderen Auszeichnungssprache einbinden möchten, so müssen Sie es erneut validieren. Beachtenswert sind ebenfalls noch einige weitere Angaben auf den restlichen Seiten rund um dieses Script.

Das komplette Script als CacheVersion liegt für Sie
unter nachfolgenden Verweisen bereit:

Download (UTF-8) | Download (ISO-8859-1)

Vor dem Download lesen Sie bitte unsere AGB sowie weitere Hinweise zum Web Service von Amazon. Wir möchten Sie weiterhin darauf hinweisen, dass Sie dieses Script von unserer Seite aus nur dann frei nutzen dürfen, wenn Sie den auf unsere Seiten verweisenden Hyperlink nicht entfernen. Die Schnittstelle (Product Advertising API) vom Amazon-Server können und dürfen Sie hingegen erst dann benutzen, wenn Sie sich für den Web Services bei amazon.com registriert haben und eine Lizenzvereinbarung von Amazon bestätigten. Nach erfolgter Anmeldung und Registrierung erhalten Sie von Amazon eine Zugangsberechtigung, eine Partnerkennung und ein Secret Access Key. Mehr dazu auf folgender Seite:

Ergänzende Hinweise finden Sie weiterhin auf folgender Seite:

Weiterhin haben wir für Sie viele Hinweise rund um das Thema Signatur, API, Request und Response zusammen gestellt:

Die bisherigen Scripts:

Neu ab Oktober 2011

 

Der betreffende Code-Abschnitt aus den beiden bereits vorgestellten Scripts:

$daten = file_get_contents("http://ecs.amazonaws.de/onca/xml?".$alleparameter."&Signature=".$signature2);

$response =
simplexml_load_string($daten);

 
Ergänzende Hinweise zur Erweiterung

Der Reihenfolge nach fragt die erste if-Anweisung ab, ob es sich um die erste Seite mit der vorgewählten Rubrik (SearchIndex) und mit dem vorgewählten Suchwort (Keywords) handelt. Wenn die Antwort "Nein" lautet, meldet sich die untere Else zu Wort und die Produkt-Anfrage wird an den Server gesendet. Lautet die Antwort hingegen ja, wird mit einer zweiten IF danach gefragt, ob bereits eine Cache-Datei vorhanden ist. Ist noch keine vorhanden, so legt die vorletzte Else eine neue Cache-Datei an und liest diese anschließend in einem String.

Ist jedoch bereits eine Datei im Ordner "ablage" mit dem vorgewählten Keyword als Dateinamen vorhanden, so möchte die dritte IF wissen, ob die Datei bereits älter als eine Stunde bzw. älter als 3.600 Sekunden ist. Ist die Datei noch nicht so alt, liest die Funktion file_get_contents die Datei in einem String. Ist die Datei jedoch bereits älter als eine Stunde, so wird die Datei vor dem Einlesen mit Hilfe der Funktion file_put_contents neu überschrieben und erst nach dem Überschreiben als String eingelesen.

/* Code-Abschnitt wie folgt ändern! */

$datenneu = "http://ecs.amazonaws.de/onca/xml?".$alleparameter."&Signature=".$signature2;

$cachedatei = "ablage/".$meinthema.".xml";
$cachezeit  = time()-3600;


if ($SearchIndex == $dierubrik and $umlautade == $meinthema and $ItemPage == 1){

         if (file_exists($cachedatei)){

                if (filemtime($cachedatei)<$cachezeit){

                      $daten = file_get_contents($datenneu);
                      file_put_contents($cachedatei, $daten);
                     
                      }else {$daten = file_get_contents($cachedatei);
                            }
}

        else {$daten = file_get_contents($datenneu);
              file_put_contents($cachedatei, $daten);
             }
}
else {$daten = file_get_contents($datenneu);} 

$response = simplexml_load_string($daten); 

Copyright © 2009 - Verlag Horst Müller - Stendal | Datenschutz | Nutzungsbedingungen