Tutorial Amazon Web Services mit PHP – V – Komplettes Beispiel Buchsuche

Wie im letzten Teil bereits angekündigt, erstellen wir im letzten Teil des Tutorials ein komplett funktionsfähiges Beispiel, um ein Buch mittels ISBN auf einer eigenen Seite darzustellen. Aufgrund der ganzen Beispiele und Erklärungen ist dies nun keine Zauberei mehr, und ziemlich einfach zu bewerkstelligen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// Die notwendigen Klassen includen
require_once("./smarty/Smarty.class.php");
require_once('Cache/Lite/Function.php');
 
// Konstanten deklarieren
define('APIKEY','...');
define('PARTNERID','...');
 
 
// XML eines Buches mit cURL von den AWS laden
function aws_load_book( $isbn ) {
	$ch = curl_init();
	// Die URL des AWS-Aufrufes zusammenstellen
	$url  = "http://webservices.amazon.de/onca/xml?Service=AWSECommerceService";
	$url .= "&AWSAccessKeyId=".APIKEY;
	$url .= "&AssociateTag=".PARTNERID;
	$url .= "&Operation=ItemLookup";
	$url .= "&ItemId=".$isbn;
	$url .= "&ResponseGroup=Large";
	//
	curl_setopt( $ch, CURLOPT_URL, $url );
	curl_setopt( $ch, CURLOPT_HEADER, 0 );
	curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
	$result = curl_exec( $ch );
	curl_close( $ch );	
	return $result;
}
 
// Funktionscache konfigurieren
$options = array(
    'cacheDir' => '/tmp/',
    'lifeTime' => 10
);
$cache = new Cache_Lite_Function($options);
 
// Gecachter Aufruf des XML-Aufrufs;
$xml = $cache->call('aws_load_book', $_GET['isbn'] );
$xmlobject = simplexml_load_string( $xml );
 
// Smarty konfigurieren
$smarty = new Smarty();
$smarty->template_dir = './';
$smarty->compile_dir = '/tmp/';
$smarty->assign( 'book_title', $xmlobject->Items->Item->ItemAttributes->Title );
$smarty->assign( 'book_description', $xmlobject->Items->Item->EditorialReviews->EditorialReview->Content );
$smarty->assign( 'book_order_link', $xmlobject->Items->Item->DetailPageURL );
$smarty->display('book.tpl');

Natürlich fehlt jetzt noch das Passende Template:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
		<title>Amazon Buchsuche</title>
	</head>
	<body>
		<h1>{$book_title}</h1>
 
		<p>{$book_description}</p>
 
		<p>Das Buch bei Amazon bestellen.</p>
	</body>
</html>

Dies funktioniert so weit, allerdings merkt man schon, dass es schier unmöglich und sehr zeitaufwendig ist, alle Funktionen der AWS zu überblicken, bzw. das resultierende XML fachgerecht zu interpretieren. Aus diesem Grund gibt es einige fertige Frameworks, die einen bei der Arbeit unterstützen. Eins davon werde ich in einem der nächsten Blogposts vorstellen.

Ähnliche Beiträge

Bearbeiten von Bilderin in PHP mit PHPImageWorksho... Man kann von Drupal halten was man will, aber ich bleibe da stets bei meiner Meinung, dass die Module zur Bildmanipulationen die besten sind, die am C...
PHP beschleunigen mit phpFastCache Je höher die Besucher-Zahlen einer Seite werden, desto mehr Probleme fängt man sich ein. In der Regel kommt man heutzutage auf die Idee, langsamen Web...
PHP Fehlermeldungen in der Console PHP ist eine feine Sache, und "früher" konnter man sogar ordentlich was mit den Fehlermeldungen anfangen. Da gab es noch "einfaches" HTML, heutzutage ...
Word, Excel & Powerpoint Dateien mit PHP erst... In 98% der Fälle besitzt der Kunde eine Excel-Datei, die irgendwie online soll. Normalerweise tauscht man die Daten dann als .CSV aus (insofern der Ku...

Ein Kommentar

Schreibe einen Kommentar