PHP возвращает XML с помощью stream_context_create ()

Я использую stream_context_create () вместо cURL, чтобы сделать сообщение HTTP. Это работает, но file_get_contents () возвращает одну строку всех данных вместо объекта XML. Как я могу изменить свой код, чтобы он возвращал объект 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

Решение

Я думаю, что вы смотрите на это var_dump в вашем браузере, и браузер пытается визуализировать теги <result> а также <name..> как стандартный HTML.

Пожалуйста, попробуйте запустить этот код и проверить источник вашей веб-страницы (в Chrome вы можете сделать это, добавив URL страницы view-source:)

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector