将数据发布到XML格式的另一个URL

时间:2014-11-27 09:51:31

标签: php xml codeigniter

这是第一个控制器xmlPost.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');


Class XmlPost extends CI_controller
{

public function index()
{

    $this->load->view('my_view');

    $data["id"] = $this->input->post("id");
    $this->load->library('session');
    $this->session->set_flashdata('$my_var' , $data["id"]);
    redirect('/xmlReceive/r_data/');
    }
}
?>

这是第二个控制器xmlReceive.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');


Class XmlReceive extends CI_controller
{
public function r_data()
{
    $this->load->library('session');
    $my_var = $this->session->flashdata('$my_var');
    echo $my_var;


   }
}
?>

这是在测试框中输入输入的视图

<html>

<form method="post" action="<?php echo base_url();?>xmlPost/index">

<input type="text" name="id" />


<input type="submit" value="submit"/>

</form>
</html>

我想要做的是从视图中获取一些输入并将其保存在控制器xmlPost.php中,然后将其传递给另一个控制器xmlReceive.php。现在一切都很好。

问题是当在xmlReceive.php控制器的文本框中放入一些XML数据时,我得到的数据没有任何xml标记,如if in insert

<?xml version="1.0" encoding="utf-8"?>
<?ADF version="1.0"?>
<adf>
<prospect><id sequence="1" source="xxxs">37</id>
</adf>

在文本框中单击提交我在xmlReceive.php中只获得37但我想获得带有xml标签的输出,即我插入的方式

我该如何解决这个问题

1 个答案:

答案 0 :(得分:0)

xml未显示的原因是因为浏览器假设您使用HTML,因此为了能够在浏览器中查看它,您需要告诉它,即:。

header('content-type: text/xml');

(注意:上面给出的示例会出错,因为<prospect>没有结束标记。)

另一个选项是回显htmlentities()中的内容,然后使用html_entity_decode()将HTML中的内容转换回XML,以便将其写入文件。

希望这有帮助!