2016-09-29 3 views
0

아마존 제품 광고 API를 사용하고 ASIN 값을 사용하여 제품 세부 정보를 가져옵니다. XML 형식의 데이터를 가져오고 있지만 제품의 기능을 분석하는 데 문제가 있습니다. 아마존 제품 광고 API에서 기능을 가져 오는 방법

<?xml version="1.0"?> 
-<ItemLookupResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2011-08-01"> 
+<OperationRequest> 
-<Items> 
-<Item> 
<ASIN>B01G9VYRWU</ASIN> 
<ParentASIN>B01D4FCID4</ParentASIN> 
<DetailPageURL>http://www.amazon.co.uk/Unlocked-Smartphone-Android-MT6580-HotKnot/dp/B01G9VYRWU%3Fpsc%3D1%26SubscriptionId%3DAKIAJVHGJYQC2HPM3LHQ%26tag%3Dhogmall-21%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB01G9VYRWU</DetailPageURL> 
+<ItemLinks> 
+<SmallImage> 
+<MediumImage> 
+<LargeImage> 
+<ImageSets> 
-<ItemAttributes> 
<Binding>Electronics</Binding> 
<Color>Gold</Color> 
<Feature>POWERFUL 4150 mAh BATTERY: Tired of bringing a power bank everywhere? Then enjoy the long battery life of this handset. When you are traveling, using the built-in GPS on Google map is power -hungry. Don't worry about of running out power in outdoor any more. Even heavy user don't need to charge this cell phone everyday!</Feature> 

<Feature>3G DUAL SIM SMARTPHONE: 3G: WCDMA 900/1900/2100MHz, also support 2g: GSM 850/900/1800/1900MHz. Compatible with lots of Carriers like Vodafone, O2, EE, T-mobile, Three, giffgaff, Lebara, CTExcelbiz, Lyca, Talk home Mobile......Two micro sim slots allow you to combine both work and personal use on the same handset or use one sim in UK. One slot is for micro sim card, another is for micro sim card or micro SD card up to 32GB of extended storage.</Feature> 

<Feature>BUDGET PHONE WITH HIGH TECH SPECIFICATION: It has fast Quad Core 1.3 GHz Processor running on good Android 5.1 Lollipop system, 2GB RAM and 5.5 inch HD screen. Games, apps, web browsing, movies and everything else will run fantastically quickly on Note S.</Feature> 

<Feature>COOL CAMERA: With an interpolated 8MP auto focus camera featuring an LED flash and interpolated 5MP wide-angle front camera, you'll have the confidence to capture shots even in challenging conditions. Face front camera let you enjoy video talk on whatsapp, Skype and take great selfies. Experience a crisp and bright viewing experience, even in direct sunlight, with a super sharp 5.5" HD display that sits elegantly in a precision crafted, diamond cut sleek frame.</Feature> 

<Feature>SAFE GUARANTEE: Our Cubot smartphones have CE and ROHS certification. All handsets are environmental-friendly.And we offer 1 year guarantee free repair and return for phone itself serious quality problem</Feature> 

<Label>CUBOT</Label> 
<Manufacturer>CUBOT</Manufacturer> 
<Model>166711601</Model> 
<MPN>166711601</MPN> 
-<PackageDimensions> 
<Height Units="hundredths-inches">291</Height> 
<Length Units="hundredths-inches">732</Length> 
<Weight Units="hundredths-pounds">119</Weight> 
<Width Units="hundredths-inches">441</Width> 
</PackageDimensions> 
<PackageQuantity>1</PackageQuantity> 
<PartNumber>166711601</PartNumber> 
<ProductGroup>Wireless</ProductGroup> 
<ProductTypeName>PHONE</ProductTypeName> 
<Publisher>CUBOT</Publisher> 
<Studio>CUBOT</Studio> 
<Title>CUBOT NOTE S Unlocked 3G 5.5'' Smartphone Dual Sim Smartphone Android 5.1 MT6580 Quad Core 1.3GHz Mobile Phone 2GB RAM+16GB ROM Dual SIM HotKnot (Gold)</Title> 
</ItemAttributes> 
+<OfferSummary> 
+<Offers> 
</Item> 
</Items> 
</ItemLookupResponse> 

내가 코드

$response = simplexml_load_file($request_url); 
if(isset($response->Items->Item)){ 
      echo 'yes'; 

      //$asin = $response->Items->Item->ASIN; 
      if(in_array($id, $json)){ //if id is in features array then continue 

       //if(isset($response->Items->Item->ItemAttributes)){ 
        echo '<br>Features<br>'; 
        foreach($response->Items->Item as $item){ 
         foreach($item->ItemAttributes->Feature as $fea){ 
          echo 'features '.trim($fea).'<br>'; 
          $value = str_replace("'", "%", trim($fea));//replaced " with ! because giving error in sql query 
          $value = str_replace('"', "!", trim($fea)); 
          if($value != '' || $value != NULL){ 
           $duplicate .= '("'.trim($id).'", "'.trim($asin).'", "'.trim($value).'") ,'; 
           $sql_features .= '("'.trim($id).'", "'.trim($asin).'", "'.$value.'") ,'; 
          } 

          echo $sql_features .'<br>'; 

         } 

        } 
      } 

     } 

이하로 사용하고 기능을 가져올하지만 제품의 기능을 얻을 수 아니에요.

답변

0

귀하의 $ sql_features 변수, 범위에서,이 방법

if($value != '' || $value != NULL){ 
    $duplicate .= '("'.trim($id).'", "'.trim($asin).'", "'.trim($value).'") ,'; 
    $sql_features .= '("'.trim($id).'", "'.trim($asin).'", "'.$value.'") ,'; 

    // echo it inside if 
    echo $sql_features .'<br>'; 
    } 
을 시도 할 수 있습니다
관련 문제