0

PHP5 で simeplexml クラスを使用して小さな XML ファイルを処理したいと考えています。しかし、そのファイルを取得するには、スクリプトが特定の POST 要求をリモート サーバーに送信する必要があります。リモート サーバーは、XML ファイルを返します。したがって、「simplexml_load_file」メソッドは使用できないと思います。このファイルは処理のためだけに必要です。このタイプの HTTP HEADER があります

$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 がありますが、それが適切かどうか、またはどのように使用するかはわかりません。

4

2 に答える 2

1

私のアドバイスは、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); 
于 2011-02-02T04:13:08.870 に答える
0

Zend_Http_Client (マゾヒストの場合は cURL) のような HTTP クライアント ライブラリを使用して POST リクエストを作成し、レスポンスの本文をsimplexml_load_stringまたはSimpleXMLElement::__construct()

于 2011-02-02T03:51:31.217 に答える