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

Webcoding - Script zur Nutzung des Amazon Web Services mit SimpleXML und PHP5

Voraussetzung: SimpleXML und PHP 5.1.2 (oder eine höhere PHP Version)

Auf der Seite Ein einfaches Script ... haben wir Ihnen einen ein Script für die Nutzung des Amazon Web Service vorgestellt. Auf dem ersten Blick wird dem Leser kaum ein großer Unterschied zum Listing auf dieser Seite auffallen. Und so ist es auch. Der einzige Unterschied besteht darin, dass dieses Script nicht für UTF-8 sondern für ISO-8859-1 abgeändert wurde. Neben der geänderten Dekleration im Head betreffen weitere Änderungen den Eingangsbereich bzw. den "Briefkasten" und die Verwendung der Funktion utf8_decode(...) an verschiedenen Stellen im Script.
Die Schreibweise von Umlauten im Quelltext und im Code der Seiten braucht hier nicht mehr als ä ö usw. erfolgen, wurde von unserer Seite nur nicht geändert, da diese in beiden Schreibweisen von den Browsern richtig dargestellt wurden.

Alle weiteren Hinweise sind identisch, so das diese hier eigentlich nicht gesondert behandelt werden müssten. Es sei noch einmal erwähnt, dieses Dokument und das Script entspricht validem HTML 4.01 Transitional. Wenn Sie es in ein Template mit einer XHTML Version einbinden, müssen Sie es erneut validieren.

Bitte beachten auch die Angaben auf der Seite "Weitere Einzelheiten".

Weitere Einzelheiten | Demo

Beim Download haben Sie die Wahl:
Das Script für PHP5 und SimpleXML liegt in einer Version
für UTF-8 und in einer Version für ISO für Sie bereit, sowie
jeweils in einer Version mit oder ohne Cache.

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

Ebenso sind die Hinweise identisch, welche die Nutzung des Scriptes betreffen. Bitte lesen Sie hierzu unsere AGB und die allgemeinen Hinweise zum Web Service von Amazon. Sie können dieses Script frei nutzen, gleich ob privat oder gewerblich (gewerblich mit Einschränkungen, siehe AGB), so lange der enhaltene Hinweislink zu unseren Seiten nicht entfernt wird. Sie können (und dürfen) damit nur keine Schnittstelle (Product Advertising API) von amazon.de, amazon.com usw. nutzen, bevor Sie sich nicht für den Web Services registriert und einer Lizenzvereinbarung mit Amazon zugestimmt haben.
Um mit diesen Script Daten vom Amazon Web Servervice bzw. von der Product Advertising API anzufordern, benötigen Sie eine Zugangsberechtigung, eine Partnerkennung und ein Secret Access Key. Wie und wo Sie diese erhalten, erfahren Sie auf dieser Seite:

Hinweise zum Amzon Web Service

Dieses Script liefert einen Zeitstempel (Timestamp) und eine verschlüsselte Signatur bei der Anfrage an den Amazon Server mit aus, wie es ab Mitte August 2009 für einen Request und für die Nutzung der Product Advertising API erforderlich ist.

An dieser Stelle noch einmal der Hinweis, wir empfehlen Ihnen eine robots.txt anzulegen oder falls bereits vorhanden, diese wie auf der folgenden Seite beschrieben zu ergänzen: Einzelheiten

Hier geht es zur Ansicht des Scripts in der Ausführung für UTF-8 und zur Ansicht des Listings mit der Cachefunktion.

weiterlesen: Script für PHP5 / UTF-8 | CacheVersion


Neu ab Oktober 2011 - Beschreibung | DemoShop | Download

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

<head>
<title>Literatur / B&uuml;cher zum Thema: Computer</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rel="stylesheet" type="text/css" href="demos.css"> 
</head>

<body bgcolor="#F1EDDA">

<h1 align="center">Ein Demo mit SimpleXML und ISO</h1>
<div align="center"><center>

<?php
//------ Hier bitte Ihre persoenlichen Zugangsschluessel eintragen --------

$secret_access_key = "00GEHEIM000000000000000000";   //-- Hier bitte Ihren geheimen Zugangs-Schlüssel eintragen
$access_key_id     = "00PHANTASIE00000000000000";    //-- Hier bitte Ihre AWSAccessKeyId eintragen
$associate_id      = "ihredomainphantasie-21";       //-- Hier bitte Ihre Partner-Id eintragen


//------ Rubrik und Thema vorwaehlen, damit Seite nicht leer ladet --------

$dierubrik = "Books";     //-- Eine Rubrik eintragen, z.B. Books oder Tools
$meinthema = "Computer";  //-- Ein Suchwort, Thema, Titel oder Autor eintragen


//------ Ab hier bitte nur bei Bedarf die Zahlenwerte abaendern! ----------

$tableweite = "width=\"100%\"";  //-- Tabellenweite anpassen -------------
$cellspacg  = "cellspacing=\"0\" cellpadding=\"0\"";
$zelleprig  = "padding-right: 10px; padding-top: 12px; padding-bottom: 15px;";
$zelleleft  = "padding-left: 10px; padding-top: 12px; padding-bottom: 15px;";
$zellunten  = "padding-left: 10px; padding-right: 10px; padding-top: 10px; padding-bottom: 10px;";


//------ Ab hier bitte keine Veraenderungen mehr vornehmen! ---------------
//------ Auslagerung dient nur zur Verkuerzung der Zeilen --------------------

$tabla  = "target=\"_blank\"";
$goldbr = "<span class=\"goldbraun\">";


//------ Der Briefkasten vom Formular mit Umwandlung der Umlaute --------

if ($_GET) {

  $SearchIndex = $_GET['SearchIndex'];
  $Keywords    = $_GET['Keywords'];
  $ItemPage    = $_GET['ItemPage'];

  $eingang = array('Ä','ä','Ö','ö','Ü','ü','ß','<','>','(',')','{','}','[',']','/','\\',' '); 
  $ausgang = array('Ae','ae','Oe','oe','Ue','ue','ss','no','nie','nicht','nein','na','nae','nee','nu','nn','mm','+');
  $umlautade = str_replace($eingang,$ausgang,$Keywords);

  $SearchIndex = preg_replace("/[^a-zA-Z]/", "no", $SearchIndex);	 
  $ItemPage    = preg_replace("/[^0-9]/", "1", $ItemPage);	      
} 
  else {$SearchIndex = $dierubrik;
        $umlautade   = $meinthema;
        $ItemPage    = 1;
}

//------ Die Titelzeile und das obere Suchformular ------------------------

print "\t<table border=\"0\" ".$tableweite." ".$cellspacg.">\n".
      "\t<tr><td width=\"100%\" style=\"padding-top: 1px; padding-bottom: 2px\">\n".
      "\t<p align=\"center\">".$goldbr."Literatur / B&uuml;cher zum Thema: " .$umlautade. " bei Amazon</span></td></tr>\n".
      "\t</table>\n";

?>

<form name="Suchoptionen" action="<?php echo basename($_SERVER["PHP_SELF"]);?>" method="get" accept-charset="iso-8859-1">

<br><br>
<select name="SearchIndex">
	<option value="Books">B&uuml;cher</option>
	<option value="DVD">DVD</option>
	<option value="Music">Musik</option>	
	<option value="Toys">Spielwaren</option>	
	<option value="OutdoorLiving">Hobby &amp; Freizeit</option>
	<option value="Software">Software</option>
	<option value="Tools">Werkzeug</option>
	<option value="SoftwareVideoGames">Video &amp; PC Spiele</option>
	<option value="HomeGarden">Haus &amp; Garten</option>	
	<option value="Kitchen">Haushalt</option>
	<option value="Photo">Fotografie</option>
	<option value="Electronics">Elektronik</option>
</select>

&nbsp; Eingabe

<input type="text" name="Keywords" value="" size="30">
<input type="hidden" name="ItemPage" value="1">
<input type="submit" value="Suchen">
</form>

<?php

print "\t<hr style=\"color: #FDFCFB; background-color: #FDFCFB\">\n";


/* Das eigentliche Sende- und Empfangsteil. Ein Teil der restlichen Parameter wird gebildet und wo es sein muss für den 
   Versand kodiert. Die Parameter werden dann entsprechend des Byte-Wertes ihrer Schlüssel geordnet. Auch wenn es auf dem 
   ersten Blick so erscheint, so entspricht diese Anordnung nicht ganz dem Alphabet, da in der Reihenfolge das kleine a 
   erst hinter dem großen Z kommt. So sind die Anfangsbuchstaben AW höher als die Anfangsbuchstaben As einzuordnen. 

   Im Anschluss wird die Signatur gebildet und der komplette String zusammen gesetzt.
*/

$aktuelle     = gmdate("Y-m-d\TH:i:s\Z");
$aktuellezeit = urlencode($aktuelle);
$SearchIndex  = urlencode($SearchIndex);
$umlautade    = urlencode($umlautade);


$alleparameter = "AWSAccessKeyId" ."=".  $access_key_id       ."&".
                 "AssociateTag"   ."=".  $associate_id        ."&".
                 "ItemPage"       ."=".  $ItemPage            ."&".
                 "Keywords"       ."=".  $umlautade           ."&".
                 "Operation"      ."=". "ItemSearch"          ."&".
                 "ResponseGroup"  ."=". "Medium"              ."&".
                 "SearchIndex"    ."=".  $SearchIndex         ."&".
                 "Service"        ."=". "AWSECommerceService" ."&".
                 "Timestamp"      ."=".  $aktuellezeit        ."&".
                 "Version"        ."=". "2009-07-18"; 



        $stringsignr = "GET\n"."ecs.amazonaws.de"."\n"."/onca/xml"."\n".$alleparameter;

        $signature1  = base64_encode(hash_hmac("sha256", $stringsignr, $secret_access_key, True));

        $signature2  = urlencode($signature1);


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


//------ Die XML-Datei wird als String geladen. ---------------------------

$response = simplexml_load_string($daten); 


//-- Auf jeden Fall muss hier der Print der Tabelle beginnen ------------

    echo "\n\t<table border=\"0\" ".$tableweite." ".$cellspacg.">\n"; 


foreach ($response->Items->Item as $movie) {

    echo "\t<tr><td align=\"center\" style=\"".$zelleprig." border-bottom: 1px solid rgb(255,255,255)\">\n";  

//------ Bilder mit Link zur Detailseite --------------------------------------

   if ($movie->MediumImage->URL){ 
       echo ("\t<a href=\"".$movie->DetailPageURL."\" ".$tabla."><img src=\"".$movie->MediumImage->URL."\" 
       border=\"0\" alt=\"Cover\"></a></td>\n");

   } else { echo 'Leider kein Bild <br> vorhanden.';
   }


   echo "\t<td align=\"center\" style=\"".$zelleleft." border-bottom: 1px solid rgb(255,255,255)\">\n";

//------ Die Titel von den Produkten mit Link zur Detailseite ------------

   echo ("\t<a href=\"".$movie->DetailPageURL."\" ".$tabla." class=\"braungold\">".
         htmlspecialchars(utf8_decode($movie->ItemAttributes->Title))."</a><br>"); 

//------ Autoren, Mitautoren und Übersetzer ------------------------------

   if ($movie->ItemAttributes->Author[0]){ 
       echo ("Autor: ".htmlspecialchars(utf8_decode($movie->ItemAttributes->Author[0])));
   }   else {}   
   if ($movie->ItemAttributes->Author[1]){ 
       echo (" - ".htmlspecialchars(utf8_decode($movie->ItemAttributes->Author[1])));
   }   else {}   
   if ($movie->ItemAttributes->Author[2]){ 
       echo (" - ".htmlspecialchars(utf8_decode($movie->ItemAttributes->Author[2])));
   }   else {}

//------ Verlag, Produzent, Art der Bindung, Datum -------------------------

   if ($movie->ItemAttributes->Publisher){ 
       echo ("<br>Verlag/Produzent: ".htmlspecialchars(utf8_decode($movie->ItemAttributes->Publisher)));
   }   else {}  
   if ($movie->ItemAttributes->Binding){ 
       echo (" - ".htmlspecialchars(utf8_decode($movie->ItemAttributes->Binding)));
   }   else {}   
   if ($movie->ItemAttributes->PublicationDate){ 
       echo ("<br>erschienen: ".htmlspecialchars(utf8_decode($movie->ItemAttributes->PublicationDate)));
   }   else {}

//------ Bemerkungen zur Beschaffenheit - falls vorhanden ------------------    

   if ($movie->ItemAttributes->Feature[0]){ 
       echo ("<br>Beschaffenheit: ".htmlspecialchars(utf8_decode($movie->ItemAttributes->Feature[0])));
   }   else {}
   if ($movie->ItemAttributes->Feature[1]){ 
       echo (", ".htmlspecialchars(utf8_decode($movie->ItemAttributes->Feature[1])));
   }   else {}
   if ($movie->ItemAttributes->Feature[2]){ 
       echo (", ".htmlspecialchars(utf8_decode($movie->ItemAttributes->Feature[2])));
   }   else {}                                               

//------ Neupreis und Angebotspreise ---------------------------------------      

   if ($movie->OfferSummary->LowestNewPrice->FormattedPrice){ 
       echo ("<br>Preis: ".htmlspecialchars($movie->OfferSummary->LowestNewPrice->FormattedPrice));
   }   else { echo '<br>Preis: keine Angaben';
   }	
   if ($movie->OfferSummary->LowestUsedPrice->FormattedPrice){ 
       echo (" / erhältlich ab: ".htmlspecialchars($movie->OfferSummary->LowestUsedPrice->FormattedPrice));
   }   else { echo ' / erhältlich ab: keine Angebote';
   }

//------ Link zur Detailseite und Zellenende -------------------------------

   echo ("<br><br>\n\t<a href=\"".$movie->DetailPageURL."\" ".$tabla." class=\"braungold\">weitere Details</a><br>"); 
   echo "\n\t</td></tr>\n\n";	

  }

    print "\t<tr><td align=\"center\" style=\"".$zellunten."\" colspan=\"2\">\n\n";  
		

//------- Die Auswertung vom Response und Umwandlung der Rubriknamen ------

foreach ($response->Items->Request as $gefunden) {	

    echo ("Seite ".$gefunden->ItemSearchRequest->ItemPage);

    $SearchIndex = ($gefunden->ItemSearchRequest->SearchIndex);


//------ Hier erhalten die Kategorien ihren deutschen Namen ---------------	   

$Deutsch = array("Books"              => "Bücher",
                 "Music"              => "Musik",
                 "DVD"                => "DVDs",
                 "Toys"               => "Spielwaren &amp; Modellbau",
                 "OutdoorLiving"      => "Hobby &amp; Freizeit",
                 "Software"           => "Software",
                 "Tools"              => "Werkzeug",
                 "SoftwareVideoGames" => "Video &amp; PC Spiele",
                 "HomeGarden"         => "Haus &amp; Garten",
                 "Kitchen"            => "Haushalt",
                 "Photo"              => "Fotografie",
                 "Electronics"        => "Elektronik");	   


echo (" - Rubrik ".$Deutsch[(string)$SearchIndex]." - Thema: ");	
	
$Keywords = ($gefunden->ItemSearchRequest->Keywords);
echo preg_replace("/[ ]/", "+", $Keywords);

}  	


foreach ($response->Items as $Ergebnisse) {
	
echo ("<br> Treffer insgesamt: ".$Ergebnisse->TotalResults);
echo (" auf ".$Ergebnisse->TotalPages. " Seiten");	

}

//------- Hier beginnt das untere Formular ---------------------------------------

?>

<form name="Searchoptionen" action="<?php echo basename($_SERVER["PHP_SELF"]);?>" method="get" accept-charset="iso-8859-1">

<br><br>
<select name="SearchIndex">
	<option value="Books">B&uuml;cher</option>
	<option value="DVD">DVD</option>
	<option value="Music">Musik</option>	
	<option value="Toys">Spielwaren</option>	
	<option value="OutdoorLiving">Hobby &amp; Freizeit</option>
	<option value="Software">Software</option>
	<option value="Tools">Werkzeug</option>
	<option value="SoftwareVideoGames">Video &amp; PC Spiele</option>
	<option value="HomeGarden">Haus &amp; Garten</option>	
	<option value="Kitchen">Haushalt</option>
	<option value="Photo">Fotografie</option>
	<option value="Electronics">Elektronik</option>
</select>

&nbsp; Eingabe

<input type="text" name="Keywords" value="" size="30">
<input type="hidden" name="ItemPage" value="1">
<input type="submit" value="Suchen">
 </form>

<?php

	print "\t</td></tr>\n\t<tr><td style=\"padding-top: 10px; padding-bottom: 10px\" colspan=\"2\">\n";
	print "\t<table border=\"0\" width=\"100%\"><tr><td width=\"33%\" align=\"left\" style=\"padding-left: 20px\">\n";


/* Die Links zur naechsten Seite und zurueck werden gebildet, wobei die Anwendung von htmlspecialchars 
   in diesem Fall auch der Validierung des Dokuments dient, um bei der Ausgabe das & in ein &amp; zu ver-
   wandeln. 
*/

$TotalPages  =  ($Ergebnisse->TotalPages);
$SearchIndex =  ($gefunden->ItemSearchRequest->SearchIndex);
$Keywords    =  ($gefunden->ItemSearchRequest->Keywords);
$ItemPage    =  ($gefunden->ItemSearchRequest->ItemPage);	
$Keywords    =  preg_replace("/[ ]/", "+", $Keywords);
     

   if ($TotalPages > 1) {

        if ($ItemPage > 1) {

            echo "\t<a class=\"braungold\" href=\"".htmlspecialchars("?".
                 "SearchIndex"."=". $SearchIndex ."&".
                 "Keywords"   ."=". $Keywords    ."&".
                 "ItemPage"   ."=".($ItemPage -1)).
                 "\">« zur&uuml;ck </a>\n";

        }  else {echo "\t<span class=\"zueinsam\">« zur&uuml;ck</span></td>\n";}  
        }

$scautor  = "Script von www.seo-welten.de";
$lscautor = "href=\"http://www.seo-welten.de\"";

	print "\t<td width=\"33%\" align=\"center\"><a class=\"braunklein\" ".$lscautor." ".$tabla.">".$scautor."</a></td>\n";
	print "\t<td width=\"34%\" align=\"right\" style=\"padding-right: 20px\">\n";  


     if ($TotalPages > 1) {

        if ($ItemPage*1 <= $TotalPages) {

            echo "\t<a class=\"braungold\" href=\"".htmlspecialchars("?".
                  "SearchIndex"."=". $SearchIndex ."&".
                  "Keywords"   ."=". $Keywords    ."&".
                  "ItemPage"   ."=".($ItemPage +1)).
                  "\">n&auml;chste Seite »</a>\n";

        }  else {echo "*\n";}
        }	
  

   	print "\t</td></tr></table>\n\n</td></tr></table>\n";

?>  

</center></div>
</body>
</html>


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