2013-09-24 3 views
2

Это кажется очень глупо, но за последние 2 housr лет я пытаюсь извлечь определенную информацию из Быстродействия в Expedia в EAN API, код РНРКак получить конкретные данные из запроса V3 PHP в Excel?

$response = json_decode(curl_exec($ch)); 
print_r($response); 

и Быстродействие является

http://api.ean.com/ean-services/rs/hotel/v3/list?minorRev=99&apiKey=baabqgw8s9xsvn2e2at2yxzb&cid=443449&locale=en_US&city=Dallas&stateProvinceCode=TX&countryCode=US&numberOfResults=3&searchRadius=50&supplierCacheTolerance=MED_ENHANCED&arrivalDate=09/04/2014&departureDate=09/05/2014&room1=2

StdClass объект ( [HotelListResponse] => StdClass Object ( [customerSessionId] => 0ABAAA76-DF68-EE91-4142-F5BA98F936A7 [numberOfRoomsRequested] =>[moreResultsAvailable] => 1 [cacheKey] => -20df68ee: 1414f5ba98f: 37f4 [cacheLocation] => 10.186.170.118:7300 [cachedSupplierResponse] => StdClass Object ( [@supplierCacheTolerance] => MED_ENHANCED [ @cachedTime] => 0 [@supplierRequestNum] => 465 [@supplierResponseNum] => 3 [@supplierResponseTime] => 1420 [@candidatePreptime] => 7 [@otherOverheadTime] => 22 [@tpidUsed ] => 5001 [@matchedCurrency] => true [@matchedLocale] => true )

 [HotelList] => stdClass Object 
      (
       [@size] => 3 
       [@activePropertyCount] => 499 
       [HotelSummary] => Array 
        (
         [0] => stdClass Object 
          (
           [@order] => 0 
           [@ubsScore] => 2735759 
           [hotelId] => 115100 
           [name] => Hilton Anatole 
           [address1] => 2201 N Stemmons Freeway 
           [city] => Dallas 
           [stateProvinceCode] => TX 
           [postalCode] => 75207 
           [countryCode] => US 
           [airportCode] => DFW 
           [supplierType] => E 
           [propertyCategory] => 1 
           [hotelRating] => 4 
           [confidenceRating] => 52 
           [amenityMask] => 7831690 
           [tripAdvisorRating] => 4 
           [tripAdvisorReviewCount] => 873 
           [tripAdvisorRatingUrl] => http://www.tripadvisor.com/img/cdsi/img2/ratings/traveler/4.0-12345-4.gif 
           [locationDescription] => In Dallas (Market Center) 
           [shortDescription] => <p><b>Property Location</b> <br />You'll be centrally located in Dallas with a stay at Hilton Anatole, steps from Dallas Market Center and close to American Airlines Center. This 4-star hotel is 
           [highRate] => 139 
           [lowRate] => 139 
           [rateCurrencyCode] => USD 
           [latitude] => 32.80057 
           [longitude] => -96.82661 
           [proximityDistance] => 4.350429 
           [proximityUnit] => MI 
           [hotelInDestination] => 1 
           [thumbNailUrl] => /hotels/1000000/30000/23000/22945/22945_63_t.jpg 
           [deepLink] => http://travel.ian.com/index.jsp?pageName=hotAvail&cid=55505&hotelID=115100&mode=2&numberOfRooms=1&room-0-adult-total=2&room-0-child-total=0&arrivalMonth=8&arrivalDay=4&departureMonth=8&departureDay=5&showInfo=true&locale=en_US 
           [RoomRateDetailsList] => stdClass Object 
            (
             [RoomRateDetails] => stdClass Object 
              (
               [roomTypeCode] => 2311 
               [rateCode] => 2311 
               [maxRoomOccupancy] => 4 
               [quotedRoomOccupancy] => 2 
               [minGuestAge] => 0 
               [roomDescription] => 2 Double Beds Standard 
               [propertyAvailable] => 1 
               [propertyRestricted] => 
               [expediaPropertyId] => 22945 
               [RateInfos] => stdClass Object 
                (
                 [@size] => 1 
                 [RateInfo] => stdClass Object 
                  (
                   [@priceBreakdown] => true 
                   [@promo] => false 
                   [@rateChange] => false 
                   [RoomGroup] => stdClass Object 
                    (
                     [Room] => stdClass Object 
                      (
                       [numberOfAdults] => 2 
                       [numberOfChildren] => 0 
                      ) 

                    ) 

                   [ChargeableRateInfo] => stdClass Object 
                    (
                     [@averageBaseRate] => 139.0 
                     [@averageRate] => 139.0 
                     [@commissionableUsdTotal] => 139.0 
                     [@currencyCode] => USD 
                     [@maxNightlyRate] => 139.0 
                     [@nightlyRateTotal] => 139.0 
                     [@surchargeTotal] => 26.0 
                     [@total] => 165.0 
                     [NightlyRatesPerRoom] => stdClass Object 
                      (
                       [@size] => 1 
                       [NightlyRate] => stdClass Object 
                        (
                         [@baseRate] => 139.0 
                         [@rate] => 139.0 
                         [@promo] => false 
                        ) 

                      ) 

                     [Surcharges] => stdClass Object 
                      (
                       [@size] => 1 
                       [Surcharge] => stdClass Object 
                        (
                         [@type] => TaxAndServiceFee 
                         [@amount] => 26.0 
                        ) 

                      ) 

                    ) 

                   [nonRefundable] => 
                   [HotelFees] => stdClass Object 
                    (
                     [@size] => 1 
                     [HotelFee] => stdClass Object 
                      (
                       [@description] => MandatoryTax 
                       [@amount] => 21.45 
                      ) 

                    ) 

                   [rateType] => MerchantStandard 
                   [currentAllotment] => 0 
                  ) 

                ) 

              ) 

            ) 

          ) 

         [1] => stdClass Object 
          (
           [@order] => 1 
           [@ubsScore] => 1751598 
           [hotelId] => 106103 
           [name] => Hyatt Regency Dallas 
           [address1] => 300 Reunion Blvd 
           [city] => Dallas 
           [stateProvinceCode] => TX 
           [postalCode] => 75207 
           [countryCode] => US 
           [airportCode] => DFW 
           [supplierType] => E 
           [propertyCategory] => 1 
           [hotelRating] => 4 
           [confidenceRating] => 68 
           [amenityMask] => 7831688 
           [tripAdvisorRating] => 4 
           [tripAdvisorReviewCount] => 698 
           [tripAdvisorRatingUrl] => http://www.tripadvisor.com/img/cdsi/img2/ratings/traveler/4.0-12345-4.gif 
           [locationDescription] => Near Dallas Convention Center 
           [shortDescription] => <p><b>Property Location</b> <br />With a stay at Hyatt Regency Dallas, you'll be centrally located in Dallas, steps from Reunion Tower and minutes from Dealey Plaza. This 4-star hotel is close to 
           [highRate] => 149.49 
           [lowRate] => 149.49 
           [rateCurrencyCode] => USD 
           [latitude] => 32.77508 
           [longitude] => -96.80985 
           [proximityDistance] => 5.8526316 
           [proximityUnit] => MI 
           [hotelInDestination] => 1 
           [thumbNailUrl] => /hotels/1000000/30000/24800/24753/24753_164_t.jpg 
           [deepLink] => http://travel.ian.com/index.jsp?pageName=hotAvail&cid=55505&hotelID=106103&mode=2&numberOfRooms=1&room-0-adult-total=2&room-0-child-total=0&arrivalMonth=8&arrivalDay=4&departureMonth=8&departureDay=5&showInfo=true&locale=en_US 
           [RoomRateDetailsList] => stdClass Object 
            (
             [RoomRateDetails] => stdClass Object 
              (
               [roomTypeCode] => 200338598 
               [rateCode] => 202085545 
               [maxRoomOccupancy] => 4 
               [quotedRoomOccupancy] => 2 
               [minGuestAge] => 0 
               [roomDescription] => Two Queen Beds 
               [propertyAvailable] => 1 
               [propertyRestricted] => 
               [expediaPropertyId] => 24753 
               [RateInfos] => stdClass Object 
                (
                 [@size] => 1 
                 [RateInfo] => stdClass Object 
                  (
                   [@priceBreakdown] => true 
                   [@promo] => false 
                   [@rateChange] => false 
                   [RoomGroup] => stdClass Object 
                    (
                     [Room] => stdClass Object 
                      (
                       [numberOfAdults] => 2 
                       [numberOfChildren] => 0 
                      ) 

                    ) 

                   [ChargeableRateInfo] => stdClass Object 
                    (
                     [@averageBaseRate] => 149.49 
                     [@averageRate] => 149.49 
                     [@commissionableUsdTotal] => 149.49 
                     [@currencyCode] => USD 
                     [@maxNightlyRate] => 149.49 
                     [@nightlyRateTotal] => 149.49 
                     [@surchargeTotal] => 26.92 
                     [@total] => 176.41 
                     [NightlyRatesPerRoom] => stdClass Object 
                      (
                       [@size] => 1 
                       [NightlyRate] => stdClass Object 
                        (
                         [@baseRate] => 149.49 
                         [@rate] => 149.49 
                         [@promo] => false 
                        ) 

                      ) 

                     [Surcharges] => stdClass Object 
                      (
                       [@size] => 1 
                       [Surcharge] => stdClass Object 
                        (
                         [@type] => TaxAndServiceFee 
                         [@amount] => 26.92 
                        ) 

                      ) 

                    ) 

                   [nonRefundable] => 
                   [rateType] => MerchantStandard 
                   [currentAllotment] => 0 
                  ) 

                ) 

              ) 

            ) 

          ) 

         [2] => stdClass Object 
          (
           [@order] => 2 
           [@ubsScore] => 992620 
           [hotelId] => 110839 
           [name] => Hotel Lawrence 
           [address1] => 302 S Houston Street 
           [city] => Dallas 
           [stateProvinceCode] => TX 
           [postalCode] => 75202 
           [countryCode] => US 
           [airportCode] => DFW 
           [supplierType] => E 
           [propertyCategory] => 1 
           [hotelRating] => 3 
           [confidenceRating] => 52 
           [amenityMask] => 7831555 
           [tripAdvisorRating] => 3 
           [tripAdvisorReviewCount] => 223 
           [tripAdvisorRatingUrl] => http://www.tripadvisor.com/img/cdsi/img2/ratings/traveler/3.0-12345-4.gif 
           [locationDescription] => Near Dallas Convention Center 
           [shortDescription] => <p><b>Property Location</b> <br />With a stay at Hotel Lawrence, you'll be centrally located in Dallas, steps from Old Red Courthouse and John F. Kennedy Memorial. This hotel is close to Dallas World 
           [highRate] => 119 
           [lowRate] => 107.1 
           [rateCurrencyCode] => USD 
           [latitude] => 32.77741 
           [longitude] => -96.80702 
           [proximityDistance] => 5.6781306 
           [proximityUnit] => MI 
           [hotelInDestination] => 1 
           [thumbNailUrl] => /hotels/1000000/800000/794600/794528/794528_24_t.jpg 
           [deepLink] => http://travel.ian.com/index.jsp?pageName=hotAvail&cid=55505&hotelID=110839&mode=2&numberOfRooms=1&room-0-adult-total=2&room-0-child-total=0&arrivalMonth=8&arrivalDay=4&departureMonth=8&departureDay=5&showInfo=true&locale=en_US 
           [RoomRateDetailsList] => stdClass Object 
            (
             [RoomRateDetails] => stdClass Object 
              (
               [roomTypeCode] => 4789 
               [rateCode] => 4789 
               [maxRoomOccupancy] => 2 
               [quotedRoomOccupancy] => 2 
               [minGuestAge] => 0 
               [roomDescription] => Standard Room, 1 Queen Bed 
               [propertyAvailable] => 1 
               [propertyRestricted] => 
               [expediaPropertyId] => 794528 
               [RateInfos] => stdClass Object 
                (
                 [@size] => 1 
                 [RateInfo] => stdClass Object 
                  (
                   [@priceBreakdown] => true 
                   [@promo] => true 
                   [@rateChange] => false 
                   [RoomGroup] => stdClass Object 
                    (
                     [Room] => stdClass Object 
                      (
                       [numberOfAdults] => 2 
                       [numberOfChildren] => 0 
                      ) 

                    ) 

                   [ChargeableRateInfo] => stdClass Object 
                    (
                     [@averageBaseRate] => 119.0 
                     [@averageRate] => 107.1 
                     [@commissionableUsdTotal] => 107.1 
                     [@currencyCode] => USD 
                     [@maxNightlyRate] => 107.1 
                     [@nightlyRateTotal] => 107.1 
                     [@surchargeTotal] => 18.15 
                     [@total] => 125.25 
                     [NightlyRatesPerRoom] => stdClass Object 
                      (
                       [@size] => 1 
                       [NightlyRate] => stdClass Object 
                        (
                         [@baseRate] => 119.0 
                         [@rate] => 107.1 
                         [@promo] => true 
                        ) 

                      ) 

                     [Surcharges] => stdClass Object 
                      (
                       [@size] => 1 
                       [Surcharge] => stdClass Object 
                        (
                         [@type] => TaxAndServiceFee 
                         [@amount] => 18.15 
                        ) 

                      ) 

                    ) 

                   [nonRefundable] => 
                   [rateType] => MerchantStandard 
                   [promoId] => 201883354 
                   [promoDescription] => Free Breakfast Included Daily 
                   [promoType] => Standard 
                   [currentAllotment] => 10 
                  ) 

                ) 

               [ValueAdds] => stdClass Object 
                (
                 [@size] => 2 
                 [ValueAdd] => Array 
                  (
                   [0] => stdClass Object 
                    (
                     [@id] => 2 
                     [description] => Continental Breakfast 
                    ) 

                   [1] => stdClass Object 
                    (
                     [@id] => 1024 
                     [description] => Free High-Speed Internet 
                    ) 

                  ) 

                ) 

              ) 

            ) 

          ) 

        ) 

      ) 

    ) 

)

, но я хочу конкретные данные, такие как имя, адрес отеля ... и т.д. я имею в виду [name] => Hotel Lawrence и т.д., когда я эхо его.

для этого я использую некоторые комбинации, как

echo $response['hotels']->Hotellist->HotelSummary[0]->name; 

но получаю ошибки синтаксического анализа, что я должен сделать, чтобы извлечь конкретные данные ?? пожалуйста, помогите

+1

Просмотрите приведенный ниже код. Это поможет вам –

ответ

1

Просьба этот код: Этот код дает вам название отеля и идентификатор отеля в качестве выхода. Вы можете использовать определенное имя массива (как я использовал для имени и адреса) и сохранить его в переменной. Это даст вам результат, как вы хотите.

$url=http://api.ean.com/ean-services/rs/hotel/v3/list?minorRev=99&apiKey=baabqgw8s9xsvn2e2at2yxzb&cid=443449&locale=en_US&city=Dallas&stateProvinceCode=TX&countryCode=US&numberOfResults=3&searchRadius=50&supplierCacheTolerance=MED_ENHANCED&arrivalDate=09/04/2014&departureDate=09/05/2014&room1=2 

$obj = json_decode(file_get_contents($url),true); 

foreach($obj['HotelListResponse']['HotelList']['HotelSummary'] as $HOTEL) 
{ 
$hname=$HOTEL['name']; 
$hadd=$HOTEL['address1'].",".$HOTEL['city']; 
$hcity=$HOTEL['city']; 
$hid=$HOTEL['hotelId']; 

echo "Name:".$hname."<br>Address:".$hadd."(".$hid.")"; 
} 
Смежные вопросы