【问题标题】:codeigniter 2.0 to 3.0 xml output brokencodeigniter 2.0 到 3.0 xml 输出损坏
【发布时间】:2015-11-07 12:23:52
【问题描述】:

从 2.0 迁移到 CI 3.0 后,xml 输出出现问题。我通过控制器上的这段代码通过restserver来做到这一点:

$xml = $this->_toRss($q);
$this->response->format = 'xml';
$this->response($xml, 200 );

$xml 是一个 SimpleXMLElement,我使用如下代码创建和组装它:

$xmlRoot = new SimpleXMLElement("<rss/>");
$xml = $xmlRoot;
$xml->addAttribute("version", "1.0");

$channel = $xml->addChild("channel");
$channel->addChild("title", "My Company");
$channel->addChild("link", xml_convert($curURL));
$channel->addChild("description", "RSS feed");

代码在这次迁移中没有改变。

以下是在 2.0 上运行的响应示例: http://pastebin.com/JfNNJeH7

以下是 3.0 的响应示例: http://pastebin.com/ubDCNnhD

【问题讨论】:

    标签: php xml codeigniter codeigniter-restserver


    【解决方案1】:

    这将在 restserver 上注册为一个错误,但这里有一个解决方法供需要它的人使用:

    $this->output->set_status_header(200);
    $this->output->set_content_type('application/xml', strtolower($this->config->item('charset')));
    $this->output->set_output($xml->asXML());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-07
      • 1970-01-01
      相关资源
      最近更新 更多