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


posting data to another url in XML format

这是第一个控制器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。 现在一切正常。

问题是当将一些 XML 数据放在 xmlReceive.php 控制器的文本框中时,我得到的数据没有任何 xml 标记,就像在插入中一样

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

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

我该如何解决这个问题

xml不显示的原因是因为浏览器假定您使用HTML,因此为了能够在浏览器中查看它,您需要告诉它,否则

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

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

另一种选择是回显htmlentities()内的内容,然后使用 html_entity_decode() 将内容从 HTML 转换回 XML,以便在要将其写入文件时使用。

希望这有帮助!