RSS源中的代码

时间:2009-08-10 15:50:47

标签: php rss kohana html-entities

我正在使用Feed创建者(特别是Kohana的feed::create()),除了我的一些文字在描述元素中可能是这样的

  

见下面的代码

     

<?php echo 'example'; ?>

Feed创建者正在使用SimpleXML库。每当返回数据时(使用$xml->asXml()),description元素中的html尖括号都将转换为HTML实体。

这使得标签被正确解析,对p标签等有用。但是,在这种情况下 - PHP代码不会显示(被尖括号包围)。

我的问题是 - 如何在RSS Feed中显示这样的内容?当&gt;本身被解析为<时,如何显示<description>&lt;p&gt;some content&lt;/p&gt;&#13; &lt;p&gt;WITH some code&lt;/p&gt;&lt;p&gt;&lt;?php&#13; //test me out!&#13; ?&gt;&lt;/p&gt;&#13; </description> ?这有意义吗?

以下是输出内容的示例:

<?php
     //test me out! ?>

注意,这不是上面的错误 - 实体都已转换)

我想要显示的内容(在RSS阅读器中)是

  

一些内容

     

使用一些代码

{{1}}

2 个答案:

答案 0 :(得分:2)

您希望代码在Feed中实际显示为代码,而不是执行,对吗?如果是这样,您需要以与希望以HTML显示的方式相同的方式进行转义,即:

htmlspecialchars( "<?php echo 'example'; ?>" )

这将导致您的Feed看起来比现在更加乱码,因为PHP将进行双重编码,一次用于RSS XML,另一次用于RSS XML中包含的HTML。

答案 1 :(得分:0)

所有RSS标签都包含字符串,所以你不能在设置标签之前进行PHP操作吗?

所以不要说:

$xml->description = 'Description <?php echo $var; ?>';
你应该这样做:

$xml->description = 'Description ' . $var;

您希望将PHP代码传递到RSS源中的原因是什么?我猜很多饲料读者都不会执行它。