3

以下をPHPCURLに変換したいと思っています。

$.ajax({
  url:"MY_URL",
  cache: false,
  type: "POST",
  data: "",
  dataType: "xml",
  success: function(data) { 
    alert('Eureka!')
    }
});

dataTypeをxmlに設定するために、以下をどのように変更する必要があるかを理解することに特に興味があります。次のコードは機能していません。

$ch = curl_init('MY_URL');
curl_setopt($ch, CURLOPT_HEADER, 0); // get the header 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
curl_setopt($ch,CURLOPT_HTTPHEADER,array (
      "Content-Type: xml; charset=utf-8",
      "Expect: 100-continue",
      "Accept: xml"
     ));

ありがとう!

4

1 に答える 1

2

Phery を使用すると、非常に簡単な方法でそれを行うことができます ( http://phery-php-ajax.net/で)。私は過去 2 年間、ライブラリを改善して使用してきました。

// file would be curl.php
Phery::instance()->set(array(
  'curl' => function($data){
    $ch = curl_init($data['url']);
    curl_setopt($ch, CURLOPT_HEADER, 0); // get the header 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
    curl_setopt($ch,CURLOPT_HTTPHEADER,array (
      "Content-Type: xml; charset=utf-8",
      "Expect: 100-continue",
      "Accept: xml"
    ));
    $data = curl_exec($ch);
    curl_close($ch);
    return PheryResponse::factory()->json(array('xml' => $data)); 
  }
))->process();

次に、ajax 呼び出しを使用して関数を作成し、再利用可能にします。

/* config would be {'url':'http://'} */
function curl(url){
  return phery.remote('curl', {'url': url}, {'target': 'curl.php'}, false);
}

curl('http://somesite/data.xml').bind('phery:json', function(event, data){
  // data.xml now contains the XML data you need
}).phery('remote'); // call the remote curl function 
于 2012-11-12T03:56:37.460 に答える