簡體   English   中英

PHP使用stream_context_create()返回XML

[英]PHP Return XML with 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;
?>

我認為您正在瀏覽器中查看此var_dump,瀏覽器嘗試將標簽<result><name..>呈現為標准HTML。

請嘗試運行此代碼,並檢查網頁的來源(在Chrome瀏覽器中,您可以通過在頁面URL前面添加view-source:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM