gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 01:52:58 25 4
gpt4 key购买 nike

这看起来很愚蠢,但在过去的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com