这是第一个控制器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标签的输出,即我插入的方式
我该如何解决这个问题
答案 0 :(得分:0)
xml未显示的原因是因为浏览器假设您使用HTML,因此为了能够在浏览器中查看它,您需要告诉它,即:。
header('content-type: text/xml');
(注意:上面给出的示例会出错,因为<prospect>
没有结束标记。)
另一个选项是回显htmlentities()
中的内容,然后使用html_entity_decode()
将HTML中的内容转换回XML,以便将其写入文件。
希望这有帮助!