代码在一个RSS源

问题描述:

我使用的是饲料的创造者(特别是Kohana中的feed::create()),除了一些我的文字可能会是这样的代码在一个RSS源

见下面的代码

<?php echo 'example'; ?>

描述元素

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

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

我的问题是 - 我如何在RSS源中显示这样的东西?当它本身被解析为<时,我怎样才能显示&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> 

这是不是一个错误之上 - 实体被全部转换)

我想它显示(在一个RSS阅读器)是

一些内容

一些代码

<?php 
    //test me out! ?> 

您希望代码在代码中实际显示为代码,而不是执行,对吗?如果是这样,你需要逃避它,你会如果你希望它在HTML显示相同的方式,即:

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

,这将导致您的饲料在寻找更加乱码比它已经这样做,因为PHP会进行双重编码,一次用于RSS XML,另一次用于RSS XML中包含的HTML。

+0

我尝试过 - 但我无法让它工作。让我再试一次。感谢您的回答。 – alex 2009-08-11 01:46:23

+0

我不得不使用它两次 - 我利用Kohana的html :: specialchars()。它丑陋地狱,但它的作品 - 行看起来像这样'$标记='

' . html::specialchars(html::specialchars($code)) . '
';' – alex 2009-08-11 13:36:31

所有的RSS标签包含字符串,这样你就不能做你的PHP操作之前设置标签?

所以不是说:

$xml->description = 'Description <?php echo $var; ?>'; 

,你应该做的:

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

什么是你想传递的PHP代码到你的RSS提要的原因是什么?我猜测很多Feed阅读器无法执行它。

+0

我想**在下面的代码示例中显示**它......在...... **看**。我不希望代码被解析。我猜所有提要阅读器都不会执行PHP代码......如果他们确实在在线阅读器或本地机器上执行它,这将是一个相当严重的安全问题。 – alex 2009-08-11 00:14:40