<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