Kıvrılmaları ve php kullanarak xml dosya tasarrufu ile sorun

4 Cevap php

Ben bir URL'ye xml göndermek Kıvrılmaları ve xml kullanıyorum.

Ben şimdi ondan yanıt alıyorum, ama onun çıkış görüntüleme değil.

Ben doğru XML dosya çıktı gibi onun orada tıklayarak View Source sayfasını alırken.

Ben bir dosyaya bu xml belgeyi saklamak gerekir.

Ben aşağıda bu kod kullanılır

<?
$path = "https://newport.ingrammicro.com/mustang"; //Relative path to the file with $_POST parsing
$ch = curl_init($path); //Initialise curl resource with above file
$data = "my xml document to post"; 
//Data to be sent to the file

curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //Send the data to the file?
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); 
curl_setopt($ch, CURLOPT_HEADER, 0);
$val = curl_exec($ch);   
curl_close($ch); //Close curl session
$fp = fopen('data.xml', 'w');
fwrite($fp, $val);
fclose($fp);
?>

Ben kaydedilen dosyayı açıldığında ancak yalnızca tek bir değer "1" Bu ben dosyada alıyorum değerdir.

actually its the true value from the curl statement($val = curl_exec($ch); ) bool(true) i tried to echo the value of Sval , it also "1"

I görünümü sayfa kaynağını almak output.when Nasıl XML dosyası tam olarak benim XML çıktı dosyasını kaydedebilirsiniz

Bu gibi görünecektir

<PNAResponse>
  <Version>2.0</Version>
  <TransactionHeader>
    <SenderID>14-018111</SenderID>
    <ReceiverID>14-018111</ReceiverID>
    <ErrorStatus ErrorNumber=""/>
    <DocumentID>{F1B17BBB-F848-4693-914A-B6943AA9009A}</DocumentID>
    <TransactionID/>
    <TimeStamp>2009-06-17T22:42:44</TimeStamp>
  </TransactionHeader>
  <PriceAndAvailability SKU="V06669" Quantity="5" GovtProgramType="PA" GovtEndUserType="F">
    <Price>1413.04</Price>
    <SpecialPriceFlag>Y</SpecialPriceFlag>
    <ManufacturerPartNumber>V11H270020</ManufacturerPartNumber>
    <ManufacturerPartNumberOccurs/>
    <VendorNumber>4913</VendorNumber>
    <Description>POWERLITE 1735W LCD PROJ</Description>
    <ReserveInventoryFlag>N</ReserveInventoryFlag>
    <AvailableRebQty>0</AvailableRebQty>
    <Branch ID="10" Name="Mira Loma, California">
      <Availability>7</Availability>
      <OnOrder>8</OnOrder>
      <ETADate>2009-06-19</ETADate>
    </Branch>
    <Branch ID="30" Name="Millington, Tennessee">
      <Availability>0</Availability>
      <OnOrder>4</OnOrder>
      <ETADate>2009-06-22</ETADate>
    </Branch>
    <Branch ID="40" Name="Carol Stream, Illinois">
      <Availability>0</Availability>
      <OnOrder>18</OnOrder>
      <ETADate>2009-06-18</ETADate>
    </Branch>
    <Branch ID="80" Name="Jonestown Pennsylvania">
      <Availability>0</Availability>
      <OnOrder>9</OnOrder>
      <ETADate>2009-06-23</ETADate>
    </Branch>
  </PriceAndAvailability>
</PNAResponse>

Herkes bunun nasıl bir fikir var mı?

4 Cevap

CURLOPT_RETURNTRANSFER ayarlayın true:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

Neden ilk etapta 0'a ayarlayın mi?

Curl_exec () fonksiyonu başarısızlık başarı TRUE ve FALSE döndürür, unless true CURLOPT_RETURNTRASFER ayarını (1):

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

Bu curl_exec () işlevi, istek cevap gövdesini yerine doğru / yanlış değerini geri dönmesine neden olur.

Ayrıca PHP: curl_exec - Manual de 'Dönüş Değerler' bölümüne bakın

Ayrıca size gerçek bir tarayıcı olarak aynı çıktı aldığınızdan emin olmak için bazı kullanıcı ajan eklemeyi deneyin isterseniz

                @curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1");

Grabiel Sosa dediğim gibi, "Eğer gerçek bir tarayıcı olarak aynı çıktı aldığınızdan emin olmak için bazı kullanıcı ajanı ilave denemek isteyebilirsiniz."

Web sitesi http://www.user-agents.org/index.shtml?moz User-Agent (Mozilla ve diğerleri) ton içerir