【问题标题】:posting data to another url in XML format以 XML 格式将数据发布到另一个 url
【发布时间】:2014-11-27 09:51:31
【问题描述】:

这是第一个控制器 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.php 中只得到 37,但我想获得带有 xml 标签的输出,即我插入的方式

我该如何解决这个问题

【问题讨论】:

  • 控制器收到 xml 后,你想做什么?
  • 假设我想将其写入文件@RossWilson

标签: php xml codeigniter


【解决方案1】:

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

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

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

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

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多