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

Webcoding - Script für AWS in der Variante für PHP4, DOM/XML und UTF-8

Voraussetzung: DOM/XML und PHP4

Auf den meisten Server dürfte wohl gegenwärtig PHP5 laufen (Stand 2009). Daneben ist PHP6 in Vorbereitung und steht bereits in den Startlöchern. Wenn wir Ihnen hier dennoch ein Script für PHP4 in zwei Versionen vorstellen, so aus zwei guten Gründen. Zum einem sind diese beiden Versionen eigentlich zu schade, um einfach so in einer Ablage zu verschwinden und zum anderen können diese Scripte noch für Anschauungszwecke nützlich sein.

Hinweis:
Ab August 2009 ist der Download des Scripts nicht mehr möglich, da diese nur noch für Anschauungszwecke dienen und ohne Signatur und Timestamp keine Anfragen mehr vom Amazon-Webserver beantwortet werden. Zur Verschlüsselung der Signatur ist die Funktion hash_hmac erforderlich und diese Funktion setzt PHP 5.1.2 voraus.

Lauffähige Scripte finden Sie hingegen unter den Links in der rechtsseitigen Spalte, einmal in der Ausführung für UTF-8 und ein weiteres Mal in der Ausführung für ISO.

Einige allgemeine Hinweise zum Webservice von Amazon

Hinweise zum Amzon Web Service

Ein Script zu Anschauungszwecken und zum Vergleich,
mit DOM XML, PHP 4 und UTF-8

Weiter » Script für PHP4 / ISO


- Neu ab August 2009 -
Lauffähige Scripts mit SimpleXML, PHP5,
Zeitstempel und Signatur finden Sie unter:

Ein einfaches Script...


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: Perl Programmierung</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="demos.css"> 
</head>

<body bgcolor="#F1EDDA">

<h1 align="center">Ein Demo mit PHP4, DOMXML und UTF-8</h1>
<div align="center"><center>
		
<?php

/* 
 Bitte dieses Script nicht mehr verwenden! Ab Mitte August 2009 werden vom Amazon-Server nur noch Anfragen beantwortet, die 
 mit einer Signatur versehen sind. Zum Erstellen dieser Signatur ist PHP in der Version PHP 5.1.2 oder höher erforderlich.
 Dieses Seite mit dem Listing dient nur noch der Anschauung. Folgen Sie statt dessen den Linkverweis "Ein einfaches Script..."
 zu den neueren Scripten.
*/


//------ Hier bitte Ihre persoenlichen Zugangsschluessel eintragen --------

$access_key_id = "0X0";  //-- Hier bitte an Stelle von 0X0 zwischen "" ohne Leerstellen Ihre AWSAccessKeyId eintragen
$associate_id  = "0X0";  //-- Hier bitte an Stelle von 0X0 zwischen "" ohne Leerstellen Ihre Partner-Id eintragen


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

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


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

$tableweite = "width=\"880\"";     //-- Tabellenweite anpassen -------------
$cellspacg  = "cellspacing=\"0\" cellpadding=\"0\"";
$zellenall  = "padding-left: 10px; padding-right: 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 = urlencode($_GET['SearchIndex']);
  $Keywords    = urlencode($_GET['Keywords']);
  $ItemPage    = urlencode($_GET['ItemPage']);

$eingang = array('%C3%84','%C3%A4','%C3%96','%C3%B6','%C3%9C','%C3%BC','%C3%9F','%3C','%3E','%28','%29','%7B','%7D','%5B','%5D',' ');
$ausgang = array('Ae','ae','Oe','oe','Ue','ue','ss','no','nie','nicht','nein','na','nae','nee','nu','+');
$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; background-image: url(../images/zellendkl.gif)\">\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="utf-8">

<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 & Freizeit</option>
	<option value="Software">Software</option>
	<option value="Tools">Werkzeug</option>
	<option value="SoftwareVideoGames">Video & PC Spiele</option>
	<option value="HomeGarden">Haus & 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 color=\"#FDFCFB\" />\n\n";
print "\t<table border=\"0\" ".$tableweite." cellspacing=\"0\" cellpadding=\"0\">\n\n";

//------ Das eigentliche Sende- und Empfangsteil -------------------------		
//------ Die restlichen Parameter werden gebildet. -----------------------


$alleparameter = "AWSAccessKeyId" ."=".  $access_key_id ."&".
                 "AssociateTag"   ."=".  $associate_id  ."&".
                 "Operation"      ."=". "ItemSearch"    ."&".
                 "SearchIndex"    ."=".  $SearchIndex   ."&".
                 "Keywords"       ."=".  $umlautade     ."&".
                 "ResponseGroup"  ."=". "Medium"        ."&".
                 "ItemPage"       ."=".  $ItemPage;		

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

$doc = domxml_open_file("http://ecs.amazonaws.de/onca/xml?Service=AWSECommerceService&".$alleparameter);

//------ Aus der XML-Datei werden zuerst die Bilder ausgelesen. -----------
//------ Wenn kein Bild vorhanden, so wird ein Ersatzimage geladen. --------

$Elemente = $doc->get_elements_by_tagname('Item');

foreach ($Elemente as $artikel) {

$ersatzBild  = "ersatzbild.jpg";      >//-- Pfad fuer das Ersatzbild hier! ----

    $BildElement = $artikel->get_elements_by_tagname('MediumImage');

     if (count($BildElement) > 0) {$ImageElement = $BildElement[0];
        $mediumimages = $ImageElement->first_child();      
        $einBild = $mediumimages->get_content(); 
    }   else {$einBild = $ersatzBild; 
    }	
	
//------ Ab hier werden die textlichen Inhalte ausgelesen. ----------------

    $titel = $artikel->get_elements_by_tagname('Title');

     if (count($titel) > 0) {$Beginn = $titel[0];
        $derTitel = $Beginn->get_content(); 
    }   else {$derTitel = 'Keine Angaben zum Titel abrufbar!';
    }

    $Autor = $artikel->get_elements_by_tagname('Author');
    

     if (count($Autor) > 0) {$Autoreins = $Autor[0];
        $einAutor = $Autoreins->get_content(); 
    }   else {$einAutor = 'Siehe unter weitere Details';
    }

     if (count($Autor) > 1) {$Autorzwei = $Autor[1];
        $Mitautor = $Autorzwei->get_content(); 
    }   else {$Mitautor = ' ';
    }

     if (count($Autor) > 2) {$Autordrei = $Autor[2];
        $zweiterMitautor = $Autordrei->get_content(); 
    }   else {$zweiterMitautor = ' ';
    }

    $Buchbindung = $artikel->get_elements_by_tagname('Binding');

     if (count($Buchbindung) > 0) {$welcheBindung = $Buchbindung[0]; 
        $dieseBindung = $welcheBindung->get_content(); 
    }   else {$dieseBindung = '-';
    }
    
    $Bestellung = $artikel->get_elements_by_tagname('DetailPageURL');

     if (count($Bestellung) > 0) {$Informationen = $Bestellung[0];
        $Infos = $Informationen->get_content(); 
    }   else {$Infos = 'weitere Informationen nicht zugaenglich';
    }

    $Hersteller = $artikel->get_elements_by_tagname('Manufacturer'); 
    
     if (count($Hersteller) > 0) {$Herausgeber = $Hersteller[0];      
        $Manufacturer = $Herausgeber->get_content(); 
    }   else {$Manufacturer = 'keine Angaben';
    }
    
    $einDatum = $artikel->get_elements_by_tagname('PublicationDate'); 
    
     if (count($einDatum) > 0) {$diesesDatum = $einDatum[0]; 
        $PublicationDate = $diesesDatum->get_content(); 
    }   else {$PublicationDate = '-';
    }    

//------- Was die Beschaffenheit anbelangt, z.B. tadelose Neuware --------

    $Feature = $artikel->get_elements_by_tagname('Feature');

     if (count($Feature) > 0) {$Angabeeins = $Feature[0];
        $Neuware = $Angabeeins->get_content(); 
    }   else {$Neuware = 'keine Angaben';
    }

     if (count($Feature) > 1) {$Angabezwei = $Feature[1];
         $weitereAngaben = $Angabezwei->get_content(); 
    }   else {$weitereAngaben = '*siehe unter Details';
    }  

//------ Offizieller Handelspreis und Angebotspreise ---------------------

$Neupreis = $artikel->get_elements_by_tagname('LowestNewPrice'); 

    if (count($Neupreis) > 0) {$Preisinfo = $Neupreis[0];
        $derPreis = $Preisinfo->last_child();
        $ganztoll = $derPreis->get_content(); 
    }  else {$ganztoll = 'keine Angaben';
    } 

        $Altpreis = $artikel->get_elements_by_tagname('LowestUsedPrice'); 
        if (count($Altpreis) > 0) {$malsehen = $Altpreis[0];
        $Preiszwei = $malsehen->last_child();
        $Testpreis = $Preiszwei->get_content(); 
    }  else {$Testpreis = 'keine Angebote';
    }

//------ Hier beginnt die Bildschirmausgabe für Content und Tabelle -------

    print  "\t<tr><td align=\"center\" style=\"".$zellenall." border-bottom: 1px solid rgb(255,255,255)\">".
            "<a href=\"".$Infos."\" target=\"_blank\"><img src=\"".$einBild."\" border=\"0\"></a></td>".
            "<td align=\"center\" style=\"".$zellenall." border-bottom: 1px solid rgb(255,255,255)\">".
            "<a class=\"braungold\" href=\"".$Infos."\" target=\"_blank\">".$derTitel." </a><br>".
            "<b>·</b> ".$einAutor." <b>·</b> ".$Mitautor." <b>·</b> ".$zweiterMitautor."<br>".
            "Verlag/Produzent: ".$Manufacturer."<br>".
            "erschienen: ".$PublicationDate." ".$dieseBindung." <br>".
            "Beschaffenheit: ".$Neuware.", ".$weitereAngaben." <br>".
            "Neupreis: ".$ganztoll." / erhaeltlich ab: ".$Testpreis." <br><br>".
            "<a class=\"braungold\" href=\"".$Infos."\" target=\"_blank\">weitere Details</a>\n\t</td></tr>\n\n"; 

}   // ...und an die anderen Klammern denken!


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


$Headelemente = $doc->get_elements_by_tagname('Items');


foreach ($Headelemente as $Gesamtergebnisse) {
	
//----- Anzahl der Summe aller Ergebnisse ----------------------------------
		
     $Gesamt = $Gesamtergebnisse->get_elements_by_tagname('TotalResults');

     if (count($Gesamt) > 0) {$alleErgebnisse = $Gesamt[0];      
        $TotalResults = $alleErgebnisse->get_content(); 
        } 

//----- Anzahl der Seiten insgesamt ---------------------------------------

    $Total = $Gesamtergebnisse->get_elements_by_tagname('TotalPages');

    if (count($Total) > 0) {$Seitenzahl = $Total[0];      
       $TotalPages = $Seitenzahl->get_content(); 
       } 

//----- Die gesuchten Begriffe -------------------------------------------  

    $Suchebegriffe = $Gesamtergebnisse->get_elements_by_tagname('Keywords');	
	
    if (count($Suchebegriffe) > 0) {$gefunden = $Suchebegriffe[0];      
       $Keywords = $gefunden->get_content(); 
       }     

//----- Sie aktuelle Seite -----------------------------------------------

    $Total = $Gesamtergebnisse->get_elements_by_tagname('ItemPage');

    if (count($dieSeite) > 0) {$welche = $dieSeite[0];      
       $ItemPage = $welche->get_content(); 
       } 

//----- Die Kategorie betreffend - z.B. Books ----------------------------
	   
   $Kategorie = $Gesamtergebnisse->get_elements_by_tagname('SearchIndex');

    if (count($Kategorie) > 0) {$wasnun = $Kategorie[0];      
       $SearchIndex = $wasnun->get_content(); 
       } 	   


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

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


$Keywords = preg_replace("/[ ]/", "+", $Keywords);

//------ Ab hier erfolgt die Bildschirmausgabe der Treffer usw.. ---------

print "Seite ".$ItemPage." - Rubrik: ".$Deutsch[$SearchIndex]." - Thema: ".$Keywords."<br />\n";
print "Treffer insgesamt: ".$TotalResults." auf ".$TotalPages." Seiten\n"; 
	    
} //--- Diese Klammer nicht vertrödeln! ----------------------------------	

//----- Das Formular ist bis auf PHP_Self normales HTML ------------------
?>

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

<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 & Freizeit</option>
	<option value="Software">Software</option>
	<option value="Tools">Werkzeug</option>
	<option value="SoftwareVideoGames">Video & PC Spiele</option>
	<option value="HomeGarden">Haus & 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

//------- Hier beginnt der Seitencounter ----------------------------------

	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";


   if ($TotalPages > 1) {

        if ($ItemPage > 1) {

             echo "\t<a class=\"braungold\" href=\"?".
                  "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=\"?".
                  "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 © 2008 - Verlag Horst Müller - Stendal | Datenschutz | Nutzungsbedingungen