加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Slim Framework – >创建XML输出

发布时间:2020-12-13 17:18:20 所属栏目:PHP教程 来源:网络整理
导读:如何创建一个为RSS流输出真实 XML内容的视图.我正在使用SLIM,TWIG与巴黎和Idiorm结合进行模板化. 就像是 : $app - get('/rss/',function() use ($app) {$articles = Model::factory('Article') - order_by_desc('timestamp') - find_many();return $app - r
如何创建一个为RSS流输出真实 XML内容的视图.我正在使用SLIM,TWIG与巴黎和Idiorm结合进行模板化.

就像是 :

$app -> get('/rss/',function() use ($app) {
$articles = Model::factory('Article') -> order_by_desc('timestamp') -> find_many();
return $app -> render('rss.xml',array('articles' => $articles));
});

使用此Template layout.xml:

<?xml version="1.0" encoding="UTF-8"?>
{% block content %} {% endblock %}

这个特殊的路线RSS模板:

{% extends 'layout.xml' %}
{% block content %}     
<blog_content>
{% for article in articles %}
<article>
<article_id>{{ article.id }}</article_id>
<article_headline>{{ article.title }}</article_headline>
<article_author>{{ article.author }}</article_author>
<article_timestamp>{{ article.timestamp }}</article_timestamp>
<article_summary>{{ article.summary }}</article_summary>
<article_link>http://slim.phaziz.com/article/{{ article.id }}/</article_link>
</article>
{% endfor %}
</blog_content>
{% endblock %}

将显示为HTML Doument,其中包含模板作为正文文本…
标头始终以xHTML而非XML格式发送

???

Thanx帮忙!

解决方法

更新:这个答案在Slim版本3中不再适用.

您必须在/ rss / route中覆盖对text / xml的响应的Content-Type HTTP标头:

$app -> get('/rss/',function() use ($app) {
  $articles = Model::factory('Article') -> order_by_desc('timestamp') -> find_many();

  $app->response->headers->set('Content-Type','text/xml')

  return $app -> render('rss.xml',array('articles' => $articles));
});

http://docs.slimframework.com/response/headers/

编辑:如果生成的XML是100%RSS,请改用application / rss xml content-type.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读