2011-02-02 9 views
0

PHP5でsimeplexmlクラスを使用して、小さなXMLファイルを処理したいと考えています。しかし、そのファイルを取得するためには、スクリプトは特定のPOST要求をリモートサーバーに送信しなければなりません。だから、私は "simplexml_load_file"メソッドを使うことができないと信じています。このファイルは処理のためだけに必要であり、消えたり削除したりすることができます。 私はそれで次どうするか、このタイプのHTTP HEADERPHP5でPOSTによって要求されたXMLファイルを受信して​​処理する方法は?

$header = 'POST '.$gateway.' HTTP/1.0'."\r\n" . 
      'Host: '.$server."\r\n". 
      'Content-Type: application/x-www-form-urlencoded'."\r\n". 
      'Content-Length: '.strlen($param)."\r\n". 
      'Connection: close'."\r\n\r\n"; 

そしてあまり考えを持っています。 fsockopenがありますが、それが適切か、それともどうすればよいかわかりません。 (あなたはマゾならまたはcURLの)

答えて

1

、POSTリクエストを作成するにはZend_Http_ClientのようなHTTPクライアントライブラリを使用したいですZend_Http_ClientライブラリまたはcURL。 fsockopenですべてを正しく取得すると、デバッグするのに苦労するでしょう。

Zend_Http_Clientはすばらしいインターフェースを備えており、すばらしく動作します。

CURLはあまり苦痛でもなく、ほとんどのPHPビルドの一部です。 以下の例:

$ch = curl_init(); 
// set URL and other appropriate options 
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); // Replace with your URL 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$output = curl_exec($ch) // Return the XML string of data 

// Parse output to Simple XML 
// You'll probably want to do some validation here to validate that the returned output is XML 
$xml = simplexml_load_string($output); 
0

私は私のアドバイスのようなものの使用になり、その後simplexml_load_stringまたはSimpleXMLElement::__construct()

にレスポンスボディを養う
関連する問題