2017-02-20 3 views
0

私はHTTPポストを作るためにcURLの代わりにstream_context_create()を使用しています。それは動作しますが、file_get_contents()はXMLオブジェクトの代わりにすべてのデータの単一の文字列を返します。 XMLオブジェクトを返すようにコードを変更するにはどうしたらよいですか?個別に値にアクセスできますか?PHP stream_context_create()を使用してXMLを返します

<?php 
$url = 'http://www.domain.com'; 
$data = array('name1' => 'data1', 'name2' => 'data2', 'name3' => 'data3'); 

$options = array(
    'http' => array(
     'header' => "Content-type: application/x-www-form-urlencoded\r\n", 
     'method' => 'POST', 
     'content' => http_build_query($data) 
    ) 
); 

$context = stream_context_create($options); 

$result = file_get_contents($url, false, $context); 

var_dump($result); // data1data2data3 
?> 

そしてXMLを返しますページ:

<?php 
header('Content-type: text/xml'); 

$xml = '<result><name1>' . $_POST['data1'] . '</name1><name2>' . $_POST['data2'] . '</data2><name3>' . $_POST['data3'] . '</name3></result>'; 

echo $xml; 
?> 
+0

(Chromeで、あなたはview-source:によってページのURLを付加することでそれを行うことができます)このコードを実行しようとすると、Webページのソースを確認してください? –

+0

@michail_wこんにちは、私は質問をXMLを返すコードで更新しました。 –

+0

良いコード例。環境(OS、開発ツール)の情報を少し追加してください。あなたの質問を再現/解決するのに役立つかもしれません。 – ssimm

答えて

1

私はあなたがあなたのブラウザでこののvar_dumpを見ていると思いますし、ブラウザがタグ<result><name..>などの標準的なHTMLをレンダリングしようとします。

あなたが他の側にXMLファイルを返すコードを提供することができ

+0

それでした!ありがとう、Michail。私は単純なXMLストリングをXMLオブジェクトに変換するためにsimplexml_load_string()を使用して、データに簡単にアクセスできるようにしました。 –

関連する問題