php - 如何从 expedia 的 V3 PHP 酒店列表请求中获取特定数据?

标签 php html curl

这看起来很愚蠢,但在过去的 2 小时里,我试图从 expedia 的 EAN api 的响应中提取特定数据 php 代码是

$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

标准类对象 ( [HotelListResponse] => stdClass 对象 ( [customerSessionId] => 0ABAAA76-DF68-EE91-4142-F5BA98F936A7 [申请房间数] => 1 [更多可用结果] => 1 [缓存键] => -20df68ee:1414f5ba98f:37f4 [缓存位置] => 10.186.170.118:7300 [cachedSupplierResponse] => stdClass 对象 ( [@supplierCacheTolerance] => MED_ENHANCED [@cachedTime] => 0 [@supplierRequestNum] => 465 [@supplierResponseNum] => 3 [@supplierResponseTime] => 1420 [@candidatePreptime] => 7 [@otherOverheadTime] => 22 [@tpidUsed] => 5001 [@matchedCurrency] => 真 [@matchedLocale] => 真 )

        [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;

但是遇到解析错误我应该怎么做才能提取特定数据??请帮忙

最佳答案

试试这个代码: 此代码为您提供酒店名称地址和酒店 ID 作为输出。 您可以使用特定的数组名称(正如我用于名称和地址的那样)并将其存储到变量中。这将为您提供所需的结果。

$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.")";
}

关于php - 如何从 expedia 的 V3 PHP 酒店列表请求中获取特定数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18979136/

相关文章:

php - 使用 PHP 在表单中创建流水号

html - 如何自定义博客中的默认时间戳

python - 在 Python 请求中使用 POST 表单数据上传图像

BASH - 将 CURL 命令拆分为多行

linux - 如何使用 curl 将文本文件打印到 jira api

php - Symfony2/Doctrine2 中的枚举启用问题

php - SQLSTATE[23000] : Integrity constraint violation: 1452 Cannot add or update a child row (laravel5)

php - PHP 和 Apache 中的多个刷新语句

html - HTML 输入表单中的小数分隔符

css - HTML/CSS div 未在页面顶部对齐