2012-04-22 12 views
0

下記のコードは、キーワード「27」が項目のタイトルまたは説明のいずれかに存在する場合の結果のリストを返します。説明にキーワード+または - 1が含まれている場合、結果リストを返すにはどうすればよいですか?eBay APIクエリで数値の範囲を検索するにはどうすればよいですか?

$クエリ=「シャツ(27:だから、26、27または28クエリ変数は、ライン10

<?php 

error_reporting(E_ALL); // Turn on all errors, warnings and notices for easier debugging 

// API request variables 
$endpoint = 'http://svcs.ebay.com/services/search/FindingService/v1'; // URL to call 
$version = '1.0.0'; // API version supported by your application 
$appid = 'carson2e7-8d18-4e3b-8267-5a37144ec50'; // Replace with your own AppID 
$globalid = 'EBAY-US'; // Global ID of the eBay site you want to search (e.g., EBAY-DE) 
$query = 'shirt 27'; // You may want to supply your own query 
$safequery = urlencode($query); // Make the query URL-friendly 
$i = '0'; // Initialize the item filter index to 0 

// Create a PHP array of the item filters you want to use in your request 
$filterarray = 
    array(
    array(
    'name' => 'MaxPrice', 
    'value' => '1500', 
    'paramName' => 'Currency', 
    'paramValue' => 'USD'), 
    array(
    'name' => 'FreeShippingOnly', 
    'value' => 'false', 
    'paramName' => '', 
    'paramValue' => ''), 
    array(
    'name' => 'ListingType', 
    'value' => array('AuctionWithBIN','FixedPrice','StoreInventory'), 
    'paramName' => '', 
    'paramValue' => ''), 
); 

// Generates an indexed URL snippet from the array of item filters 
function buildURLArray ($filterarray) { 
    global $urlfilter; 
    global $i; 
    // Iterate through each filter in the array 
    foreach($filterarray as $itemfilter) { 
    // Iterate through each key in the filter 
    foreach ($itemfilter as $key =>$value) { 
     if(is_array($value)) { 
     foreach($value as $j => $content) { // Index the key for each value 
      $urlfilter .= "&itemFilter($i).$key($j)=$content"; 
     } 
     } 
     else { 
     if($value != "") { 
      $urlfilter .= "&itemFilter($i).$key=$value"; 
     } 
     } 
    } 
    $i++; 
    } 
    return "$urlfilter"; 
} // End of buildURLArray function 

// Build the indexed item filter URL snippet 
buildURLArray($filterarray); 

// Construct the findItemsByKeywords HTTP GET call 
$apicall = "$endpoint?"; 
$apicall .= "OPERATION-NAME=findItemsAdvanced"; 
$apicall .= "&SERVICE-VERSION=$version"; 
$apicall .= "&SECURITY-APPNAME=$appid"; 
$apicall .= "&GLOBAL-ID=$globalid"; 
$apicall .= "&descriptionSearch=true"; 
$apicall .= "&categoryId=110"; 
$apicall .= "&keywords=$safequery"; 
$apicall .= "&paginationInput.entriesPerPage=100"; 
$apicall .= "$urlfilter"; 

// Load the call and capture the document returned by eBay API 
$resp = simplexml_load_file($apicall); 

// Check to see if the request was successful, else print an error 
if ($resp->ack == "Success") { 
    $results = ''; 
    // If the response was loaded, parse it and build links 
    foreach($resp->searchResult->item as $item) { 
    $pic = $item->galleryURL; 
    $link = $item->viewItemURL; 
    $title = $item->title; 

    // For each SearchResultItem node, build a link and append it to $results 
    $results .= "<a href=\"$link\" title=\"$title\"><img src=\"$pic\" height=\"250\" width=\"250\" style=\"margin:5px;\"></a>"; 
    } 
} 
// If the response does not indicate 'Success,' print an error 
else { 
    $results = "<h3>Oops! The request was not successful. Make sure you are using a valid "; 
    $results .= "AppID for the Production environment.</h3>"; 
} 
?> 

<!-- Build the HTML page with values from the call response --> 
<html> 
<head> 
<title>eBay Search Results for <?php echo $query; ?></title> 
<style type="text/css"> 
body { 
    font-family: arial,sans-serif; 
    } 
.container { 
    max-width: 1200px; 
} 

    </style> 
</head> 
<body> 

<div class="container"> 

    <?php echo $results;?> 

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

答えて

関連する問題