Načítání dat z URL

  • umožňuje využít SimpleXML jako jednoduchého klienta pro webové služby využívající REST architekturu

Příklad 5. simplexml/amazon.php

<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN'>
<html lang="cs">
  <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8">
    <title>Vyhledání CD na Amazonu</title>
  </head>
  <body>
    <h1>Vyhledání CD na Amazonu</h1>

    <!-- Formulář pro zadání dotazu -->
    <form action="amazon.php">
      <fieldset>
        <legend>Hledaný interpret nebo album:</legend>
        <input type="text" name="dotaz" value='<?php echo isset($_GET["dotaz"]) ? $_GET["dotaz"] : ""?>'>
        <input type="submit" value="Hledej">
      </fieldset>
    </form>
<?php 

// v případě, že uživatel zadal interpreta k hledání, provedeme hledání
if (isset($_GET["dotaz"]))
{
  // otevřeme XML dokument, který nám dynamicky vygeneruje WS Amazonu na základě dotazu
  $xml = simplexml_load_file("http://webservices.amazon.com/onca/xml?Service=AWSECommerceService&SubscriptionId=1JMSQ8X5M67JBHADYR82&Operation=ItemSearch&SearchIndex=Music&Keywords=" . urlencode($_GET["dotaz"]));

  // projdeme všechny vrácené položky a zpracujeme je
  foreach($xml->Items->Item as $item)
  {
    // vypíšeme název alba
    echo "<h2>" . htmlspecialchars($item->ItemAttributes->Title) . "</h2>\n";

    // projdeme všechny autory alba a uložíme si jejich jména do pole
    $artists = array();
    foreach ($item->ItemAttributes->Artist as $artist)
    {
      $artists[] = $artist;
    }

    // vypíšeme autory alba oddělené čárkou
    echo "<i>". htmlspecialchars(join(", ", $artists)) . "</i><br>\n";

    // vypíšeme odkaz vedoucí na stránku elektronického obchodu Amazonu
    echo "<p><a href='" . htmlspecialchars($item->DetailPageURL, ENT_QUOTES) . "'>Podrobnosti o albu</a></p>\n";
    echo "<hr>\n";
  }
}
?>
  </body>
</html>