PHP使用stream_context_create()

时间:2017-02-20 15:28:48

标签: php xml post

我正在使用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;
?>

1 个答案:

答案 0 :(得分:1)

我认为您在浏览器中查看此var_dump,浏览器会尝试将标记<result><name..>呈现为标准HTML。

请尝试运行此代码,并检查您的网页来源(在Chrome中,您可以通过在view-source:之前添加页面网址来实现)