这是第一个控制器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,以便在要将其写入文件时使用。
希望这有帮助!