簡體   English   中英

PHP SoapClient 將數組轉換為字符串

[英]PHP SoapClient converting Array to String

另一個 SOAP 問題 - 我有一個大的多維數組,使用 print_r 時可以很好地回顯(例如,您可以看到所有數據)。 當我使用時出現問題

SOAPClient->__soapCall('Function', array('paramaters' => $feedUpload));

這實際上返回了一個 xml,如下所示:(使用 __getLastRequest)

<soap-env:envelope xmlns:ns1="http://www.property24.com/prosol/P24Feed" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
    <soap-env:body>
        <ns1:uploadlistings>
            <ns1:feedupload>
                <ns1:version>1</ns1:version>
                <ns1:usertoken>
                    <ns1:token>3c7b39ea-c10b-451f-95bf-5118d84fb089</ns1:token>
                </ns1:usertoken>
                <ns1:command>UPLOAD</ns1:command>
                <ns1:compress>None</ns1:compress>
                <ns1:listings>
                    <ns1:listing>
                        <ns1:listingnumber>361000001</ns1:listingnumber>
                        <ns1:propertycategory>SR</ns1:propertycategory>
                        <ns1:listingdata>Array</ns1:listingdata>
                        <ns1:listingtype>A</ns1:listingtype>
                    </ns1:listing>
                </ns1:listings>    
            </ns1:feedupload>    
        </ns1:uploadlistings>
    </soap-env:body>
</soap-env:envelope>

如您所見,對於ListingData,它返回“Array”。 這是數組架構:

Array
(
    [parameters] => Array
        (
            [FeedUpload] => Array
                (
                    [Version] => 1
                    [UserToken] => Array
                        (
                            [Token] => 5ece25e7-77d9-4dbf-8b8f-e047759ab8f4
                        )

                    [Command] => UPLOAD
                    [Compress] => None
                    [Listings] => Array
                        (
                            [Listing] => Array
                                (
                                    [PropertyCategory] => SR
                                    [ListingNumber] => 361000001
                                    [ListingType] => A
                                    [ListingData] => Array
                                        (
                                            [MandateDetails] => Array
                                                (
                                                    [ListingNumber] => 361000001
                                                    [ListingType] => A
                                                    [MandateType] => O
                                                    [ClosedUserGroup] => C
                                                    [MarketCode] => A
                                                    [ListPrice] => 111000
                                                    [OccupationDate] => 
                                                    [OffMarketDate] => 
                                                    [OnMarketSince] => 
                                                    [ExpiryDate] => 2011-07-13T09:56:14Z
                                                    [ListDate] => 2011-07-13T09:51:14Z
                                                    [UpdateDate] => 2011-07-13T09:51:14Z
                                                    [VirtualTourUrl] => 
                                                    [ActualDirections] => 
                                                    [ShowHouseDirection] => 
                                                    [ViewComments] => 
                                                    [InternetComments] => Excellent stand situated on the flood plane with large riverine trees and great mountain views.   The estate is situated along the world renowned Blyde River and is 394 ha in extent with only 154 sites on 4000 square metres.  The estate has an array of plains game such as antelope, giraffe and wildebeest as well as hippo and crocodile.     The riverine flood plain provides great birding opportunities such as the Pels fishing owl. There is a restaurant and clubhouse that serves meals and cocktails and offers  
                                                )

                                            [PropertyDetails] => Array
                                                (
                                                    [PropertyCategory] => SR
                                                    [PropertyType] => SRX
                                                    [Status] => ACTV
                                                    [Province] => Eastern Cape
                                                    [Town] => Aberdeen
                                                    [Suburb] => Balvinie
                                                    [StreetName] => Test Street
                                                    [StreetNumber] => 5
                                                    [PostalCode] => 0123
                                                    [ErfSize] => 1200
                                                    [HouseSize] => 
                                                    [Age] => 
                                                    [OwnerType] => G
                                                    [VATRegistered] => false
                                                    [MunicipalRatesAndTaxes] => 0
                                                    [MunicipalImprovementsValue] => 0
                                                    [MunicipalLandValue] => 0
                                                    [MunicipalTotalValue] => 0
                                                    [StandNumber] => 
                                                    [StandNumberSubdivided] => 
                                                    [PortionNumber] => 
                                                    [OwnerShipType] => 
                                                )

                                            [ResidentialDetails] => Array
                                                (
                                                    [NoOfBathrooms] => 2
                                                    [BathroomDescription] => 
                                                    [NoOfBedrooms] => 6
                                                    [BedroomDescription] => 
                                                    [NoOfKitchens] => 2
                                                    [KitchenDescription] => 
                                                    [NoOfReceptionRooms] => 2
                                                    [ReceptionRoomDescription] => 
                                                    [NoOfStudies] => 1
                                                    [StudiesDescription] => 
                                                    [NoOfDomesticBathrooms] => 2
                                                    [NoOfDomesticRooms] => 0
                                                    [DomesticRoomsDescription] => 
                                                    [NoOfGarages] => 0
                                                    [GarageDescription] => 
                                                    [NoOfOutsideToilets] => 0
                                                    [Coverage] => 0
                                                    [Pool] => false
                                                    [PoolDescription] => 
                                                    [Flatlet] => 
                                                    [FlatletDescription] => 
                                                    [FlatletSize] => 
                                                    [EstablishedGarden] => 
                                                    [OutBuildingSize] => 
                                                    [NoOfCarports] => 0
                                                    [CarportsDescription] => 
                                                    [ParkingBayNumber] => 
                                                    [Parking] => 
                                                    [ParkingDescription] => 
                                                    [BusinessRights] => 
                                                    [HeightRestrictions] => 
                                                    [CommonFeatures] => 
                                                    [NumberOfShares] => 
                                                    [FacingOptions] => 
                                                    [KitchenOptions] => 
                                                    [FeatureOptions] => 
                                                    [SpecialFeatureOptions] => 
                                                    [WallOptions] => 
                                                    [WindowOptions] => 
                                                    [StyleOptions] => 
                                                    [TemperatureControlOptions] => 
                                                    [SecurityOptions] => 
                                                    [RoofOptions] => 
                                                    [RoomOptions] => 
                                                    [PoolOptions] => 
                                                    [BathroomOptions] => 
                                                )

                                            [AgentDetails] => Array
                                                (
                                                    [InternetAgentName] => Ricky Duckworth
                                                    [InternetAgentPhoneNumber] => 0157931534
                                                    [InternetAgentEmailAddress] => ricky@propertylogic.net
                                                    [InternetAgentSMSNumber] => 0796057834
                                                    [ListingAgentCode] => CN21
                                                    [ListingAgencyCode] => CWP021
                                                )
                                        )
                                )
                        )
                )
        )
)

如您所見,數組結構良好。 就像 SoapRequest 已經深入到一個數組中並停止了。 我也收到通知

Notice: Array to string conversion in /var/www/vhosts/propertylogic.net/httpdocs/soap_feed/property24/add_property.php on line 178

這是 SOAPCall 行。

非常感謝!

編輯

[編輯]好的,基本上 SOAP 服務器要求該部分是原始的 xml,所以我不得不用字符串替換 Array - 一種愚蠢的做事方式,但錯誤消息現在是有道理的。 (無法回答我自己的問題)。

您最好生成並使用 WSDL 來創建 SOAP 客戶端並在那里定義復雜類型。 這樣,每個 SOAP 類型都將以自然的方式轉換為 PHP 類型(在您的示例中,它將是一個對象數組)。

或者你可以像你已經做的那樣用字符串替換數組,雖然它是一個骯臟的魔法:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM