<html>
<head>
<title>AMAZON.COM - WEB SERVİSLERİ İÇİN ÖRNEK PHP-SOAP-WSDL UYGULAMASI</title>
<meta content="text/html; charset=iso-8859-9" http-equiv="Content-Type">
<meta content="text/html; charset=iso-8859-9" http-equiv="Content-Type">
<meta name="Language" content="tr">
<meta name="Copyright" content="©2005 Eser SAHiLLiOGLU">
<meta name="Author" content="Eser SAHiLLiOGLU">
<meta name="description" content="amazon.com web servislerinden soap, wsdl, php ve pear ile sanatçı sorgulamak ve sonuçlarını görüntülemek için hazırlanmış örnek uygulamadır! '">
<meta name="keywords" content="amazon, amazon.com, php, soap, wsdl, pear, web services, webservice, soap php pear sample example ornek örnek uygulama">
<style>
    body {
        font-family: Verdana, Arial, Helvetica;
        font-size: 9px;
    }
    .header {
        color: navy;
        font-weight:bold;
        border:1px outset brown;
        margin:13px;
        padding:13px;
        font-size: 9px;
    }
    .details {
        font-size: 9px;
        color: #333333;
        font-weight:normal;
        border:1px outset navy;
        float:left;
        margin:3px;
        padding:3px;
        background-color:#lightyellow;
    }
    .details_header {
        font-weight:bold;
        width:100px;
        float:left;
    }
    .img_small {
        float: right;
        padding:2px;
        margin:2px;
        border:1px solid #ccc;
    }
    .inputbox {
        font-size:1.2em;
        border:1px solid #999999;
        font-family: Courier,Arial, Helvetica;
    }
    
</style>
</head>
<body>
  <div align="center">
    <table border="0" width="75%" cellpadding="6" cellspacing="3">
      <tr>
        <td bgcolor="orange" align="center">
            <b> 
                SOAP - WSDL - PHP - PEAR - AMAZON.COM: ÖRNEK UYGULAMA<br>
                Sanatçı arama ve sonuçları gösterme

            </b> 
        </td>
      </tr>
      <tr>
        <td align="center" bgcolor="#ccff55">
            <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
                sanatci adi: <input class="inputbox" type="text" name="keyword" id="keyword" value="">
                <input class="inputbox" type="submit" name="submit_keyword" id="submit_keyword" value="Gonder">
                
            
            </form>
        </td>
      </tr>
      <tr>
        <td align="center" bgcolor="#FCFCFC">
<?php 
    
if (isset($_POST['submit_keyword']) && !empty($_POST['keyword'])) {
        
//pear.php.net adresinden indirdigimiz SOAP paketindeki
        //client.php dosyasini include ediyoruz.
        //bu dosya bizim bir SOAP server'ina baglanip verilen hizmetler 
        //cercevesinde cesitli sorgular yapabilmemizi sagliyor
        //ve donen sonucu parse edip kullanimimiza sunuyor. 
        //soap paketindeki dosyalari kullanabilmek icin bu paketteki dosyalarin php'nin 
        //include_path'ine verilmis dizin altinda olmasi gerekiyor.
            
include("SOAP/Client.php");
        
        
// burada baglanacagimiz ve sorgu yapacagimiz url'yi tanimliyoruz.
        // wsdl sorgusu yapabilmek icin adresin sonunda ?wsdl ekinin olmasi gerekiyor
        // veya adresin uzantisinin wsdl olmasi..
        
$wsdl_url "http://soap.amazon.com/schemas2/AmazonWebServices.wsdl";
        
        
//soap_wsdl class'indan yukaridaki url'yi vererek yeni bir nesne uretiyoruz
        
$wsdl = new SOAP_WSDL($wsdl_url);
        
        
//WSDL class'inda getProxy methodunu cagiriyoruz.
        //bu method bize soap sunucusundaki webservislerin fonksiyonlarini
        //sanki local bir fonksiyonmus gibi cagirmamizi sagliyor. 
        
$soapclient $wsdl->getProxy();    
        
//asagida cagirdigimiz ArtistSearchRequest fonksiyonu aslinda amazon.com'un fonksiyonu.
        //ama getProxy methodu bize bunu soapclient'in bir fonksiyonu 
        //gibi cagirmamizi sagliyor.
        
        // amazonun bize sundugu soap fonksiyonlarindan kullanacak oldugumuz 
        // fonksiyona gerekli parametreleri veriyoruz!
        
$keyword strip_tags(trim($_POST['keyword']));
        
$devtag 'sf4444sf4hs5r5'//gercek bir kod degildir. asagidaki aciklamayi okuyun lutfen!
        
        
$parameters = array(
                
'artist'      => $keyword,
              
'page'        => 1,
              
'mode'        => 'music',
              
'tag'         => 'Webservice-20',
              
'type'        => 'lite',
              
'devtag'      => $devtag,
        );
          
// $devtag'e verdigimiz kod, amazon'un web servislerini kullanabilmek icin 
          // kayit oldugumuzda bize gonderdigi anahtar!
          // bu anahtar gercek degildir. gercek anahtar almak icin
          // https://aws-portal.amazon.com/gp/aws/developer/registration/index.html
          // adresini ziyaret ederek hesap actirmaniz gerekmekte. 3 dakikalik is ;)

        
        
        //asagidaki satirda ArtistSearchRequest fonksiyonuna once 
        // parametrelerimizi vererek sorgulama yapiyoruz ve donen
        //sonucu resultdata degiskenine atiyoruz.
        //amazon.com'un digger web servisleri icin: 
        //http://www.amazon.com/aws adresini gezebilirsiniz.
        
$resultdata $soapclient->ArtistSearchRequest($parameters); 
        
        if (
PEAR::isError($resultdata)) {//donen bir hata mesaji var mi kontrol ediyoruz
            //donen hata varsa bunu ekrana bastiriyoruz
            
print("hata: " $resultdata->getMessage() . "<br>\n"); 
        } else { 
// hata yoksa 
            //print_r($resultdata); // ne dondugunu gormek istiyorsaniz...
            
            //ve donen sonuclara estetik katmak icin css, tablo, vs. kullaniyoruz..
            
echo '
                <table width="500" border="0" cellpadding="0" cellspacing="0">
                <tr>
                <td>
                
                <div class="header">
                    Anahtar Sozcuk:
                        <span style="color:red;">'
.$keyword.'</span> <br>
                    Toplam Sonuc:
                        '
.$resultdata->TotalResults.' <br>
                    Toplam Sayfa:
                        '
.$resultdata->TotalPages.
                </div>'
;
            
$i=1;
            
$results $resultdata->Details;
            foreach (
$results as $key=>$values) {
                
                echo 
'
                    <div class="details">
                '
;
                
//echo '<div style="font-size:35px; color:orange; font-family:arial black; float:left;"><em>'.$i.'</em></div>';
                
if (!empty($values->ImageUrlLarge)) {
                    echo 
'<a href="'.$values->ImageUrlLarge.'" target="_blank"><img class="img_small" src="' . (!empty($values->ImageUrlSmall)    ?    $values->ImageUrlSmall    :    '') . '"></a>';    
                } else {
                    echo 
'<img class="img_small" src="' . (!empty($values->ImageUrlSmall)    ?    $values->ImageUrlSmall    :    '') . '">';
                }
                
                echo 
'<div class="details_header">Adı:</div> '     . (!empty($values->ProductName) ? $values->ProductName     :'') . '<br>';
                echo 
'<div class="details_header">ASIN:</div> '    . (!empty($values->Asin)         ? $values->Asin             :'') . '<br>';
                echo 
'<div class="details_header">Katalog:</div> '    . (!empty($values->Catalog) ? $values->Catalog        :'') . '<br>';
                echo 
'<div class="details_header">Cikis Tarihi:</div> '    . (!empty($values->ReleaseDate) ? $values->ReleaseDate    :'') . '<br>';
                echo 
'<div class="details_header">Uretici:</div> '    . (!empty($values->Manufacturer) ? $values->Manufacturer    :'') . '<br>';
                echo 
'<div class="details_header">Fiyat:</div> '    . (!empty($values->ListPrice)      ? $values->ListPrice        :'') . '<br>';
                echo 
'<div class="details_header">Bulunurluk:</div>';
                    if (!empty(
$values->Availability)) {
                        echo ((
trim($values->Availability) == 'This item is currently not available.') ?    '-<br>'    '+<br>');
                    }
                echo 
'<div class="details_header">Ikinci El:</div> '    . (!empty($values->UsedPrice) ?    $values->UsedPrice        :'') . '<br>';
                echo 
'<div class="details_header">Sanatci/lar:</div> '    . (!empty($values->Artists)      ?    implode(' | ',$values->Artists) : '');
                echo 
'<div style="float:right">' . (!empty($values->Url)    ?    '<a href="' $values->Url '">Detaylar</a>':'').'</div>';
                echo 
'</div>';
                echo 
'</div>';
                
                
            
$i++;
            }
        }
        echo 
'
            </td>
            </tr>
            </table>
        '
;    
    }
 
?>        
        </td>
      </tr>
      <tr>
        <td bgcolor="#FCFCFC" align="center">
            <a href="show_source.php">uygulamanin acik kodu icin tiklayin</a>
          <br>
          eser sahillioglu (c) <br>
          mail: shl [ at ] sahillioglu.net  
      | url: <a href="sahillioglu.net">sahillioglu.net</a>
        </td>
      </tr>
    </table>

    </div>
</body>
</html>
1