Boardunity & Video Forum

Boardunity & Video Forum (https://boardunity.de/)
-   Programmierung und Datenbanken (https://boardunity.de/programmierung-datenbanken-f23.html)
-   -   Suchen bei Amazon auf meiner Seite (https://boardunity.de/suchen-amazon-meiner-seite-t3703.html)

robi 02.11.2005 19:04

Suchen bei Amazon auf meiner Seite
 
Hallo zusammen, ich bin ein Anfänger was PHP betrieft.
Darum benötige ich eure Hilfe.

Ich benötige ein kleines Script mit dem ich von meiner Seite aus
über "EAN" ( das ist der Barcode auf den DVD ) oder nach ASIN ( Nr. von Amazon ) suchen kann.

Der Artikel sollte dann auf meiner Seite mit Bild, Beschreibung und Produktinformation angezeigt werden.

Ist so etwas möglich ??

MFG
Robi

MrNase 02.11.2005 20:36

Hallo!

Habe es bislang nicht geschafft in einer Art und Weise auf deine PN zu antworten die dir weiterhilft ;)

Möglich ist sowas auf alle Fälle, ich habe es bei mir nicht geschafft da ich mit meinem Script nicht auf die EAN oder ASIN zugreifen konnte. Einziges Ergebnis der Suche:

Code:

<ErrorMsg>There are no exact matches for the search.</ErrorMsg>

robi 07.11.2005 10:19

Hallo Mr.Nase,
hast Du den soetwas das ich nach einem Titel suchen kann.

Beispiel:

Titel: The One Medium: DVD

Angezeigt wird dann:
Bild mit Artikelbeschreibung

MFG
Robi

MrNase 07.11.2005 10:40

Ja sowas habe ich hier allerdings musst du es für deine Bedürfnisse anpassen..


PHP-Code:

<?php
 
$base 
'http://xml-eu.amazon.com/onca/xml3'// BasisURL
 
define ("CACHEDIR""cache/");                // Das Verzeichnis für die Cachedatei
define ("CACHEMAXTIME""86400");             // Wie lange soll eine Suche im Cache bleiben (in Sekunden)
define ("ASSOCIATESID""");   // Die ID für DEIN Partnerprogramm
define ("DEVTOKEN""");  // Deine Entwickler-ID
 
 
 
function cachexml($URL) {
   
// Cachedatei z.B. cache/28bb8b1dc668f471620630405f58fdde.dat
   
$LocalFile CACHEDIR.md5($URL).".dat";
   
   
// Ist die Datei da? Ist die Datei jünger als die eingestellte Cachedatei?
   
if((file_exists($LocalFile)) && (($TmpTime time())-filemtime($LocalFile) < CACHEMAXTIME) && CACHEDIR)
    {
     
// Cachedatei in einen String einladen
     
$String = @file($LocalFile);
     if(
is_array($String))
      { 
$String implode("",$String); }
    }
   else
    { 
       
$handle fopen ($URL"r");
          while (!
feof($handle)) {
              
$String .= fgets($handle128);
              }
              
             
fclose ($handle);
 
     if(
$String && file_exists(CACHEDIR) && CACHEDIR)
      { 
fwrite(fopen("$LocalFile""w"), $Stringstrlen($String)); }
    }
   return 
$String;
 }
 
 
// Erstmal alles leeren was hinterher gebraucht wird
 
$query_string '';
 
$xmlstring    '';
 
 
 
// Array mit möglichen Parametern. Im Moment nur die, die ICH brauche.
 
$params = array
 (
      
'mode'         => 'all',
      
'page'         => '1',
      
'type'         => 'heavy',
      
'f'            => 'xml',
      
't'            =>  ASSOCIATESID,
      
'dev-t'        =>  DEVTOKEN,
      
'locale'       => 'de',
      
'keyword'      => 'GFDFGgggggggg'// keine Ahnung was das ist :D
      
'KeywordSearch'=> 'auto'
 
 
);
 
 
// Hier erzeuge ich die Querystring für die API. Ist ein Element des Arrays nicht leer, so füge ich es zum Querystring hinzu.
 
foreach ($params as $key => $value) {
      if(!empty(
$value))
      {
 
$query_string .= "$key=" urlencode($value) . "&";
      }
 }
 
 
// Voilá: Die Anfrage:
 
$request "$base?$query_string";
 
 
$filename $request;
 
 
 
$xmlstring cachexml($filename); // XML Datei einlesen, aus Cache oder vom Amazon
 
 
$xml simplexml_load_string($xmlstring); // Simple XML starten  
 
 
foreach ($xml->Details AS $book)
 {
 
// Ich wandel UTF zu ISO um.
 
echo "<h2>"utf8_decode($book->Catalog) ."</h2>";
 
 if(
$book->Authors->Author) {
 foreach(
$book->Authors->Author AS $author)
 {
 echo 
"<h3>"utf8_decode($author) ."</h3>";
 }
 }
 echo 
"<h3>"utf8_decode($book->Manufacturer) ."</h3>";
 echo 
"<img src=\"$book->ImageUrlSmall\" />";
 echo 
"<br />";
 echo 
$book->Isbn;
 
 if(
$book->Reviews->CustomerReview->Rating) {
 echo 
"<img src='http://g-images.amazon.com/images/G/01/detail/stars-".$book->Reviews->CustomerReview->Rating."-0.gif' width=64 height=12 align=absolute>";
 }
 if(
$book->Reviews->CustomerReview) {
 echo 
"<br />";
 echo 
"Comments";
 foreach(
$book->Reviews->CustomerReview AS $comment)
 {
 echo 
utf8_decode($comment->Summary);
 echo 
"<br />";
 echo 
utf8_decode($comment->Comment);
 echo 
"<br />";
 }
 }
 echo 
"<hr />";
 
 } 
?>


robi 08.11.2005 21:46

Hallo Mr. Nase,
also ich mache da etwas falsch,

Ich bekomme die Meldung:

Fatal error: Call to undefined function: simplexml_load_string() in /suche.php on line 74

und in Line 74 steht:

$xml = simplexml_load_string($xmlstring); // Simple XML starten

Kannst Du mir nochmal helfen ??


MFG
Robi

Björn 08.11.2005 22:40

diese funktion gibt es nur unter php5..
wenn du kein php 5 aufm server hast, musst du dir einen xml parser basteln bzw nach googlen..
hast du dennoch php 5, musst mal deinen hoster anschreiben
mfg

MrNase 09.11.2005 06:53

Oh sorry.. Das hatte ich leider vergessen zu erwähnen :(

Ich benutze PHP5 schon recht lange, auf meinen Servern läuft PHP5 und so vergesse ich manchmal die Unterschiede :)

Jens* 12.11.2005 11:13

DAs Thema Amazon hatten wir ja auch schon in diesem Thread. Da findet man auch einige interessante Links: http://boardunity.de/klasse-gesucht-...ghlight=amazon


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:09 Uhr.

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