代码在一个RSS源
我使用的是饲料的创造者(特别是Kohana中的feed::create()),除了一些我的文字可能会是这样的代码在一个RSS源
见下面的代码
描述元素
<?php echo 'example'; ?>
Feed创建者正在使用SimpleXML库。无论何时返回数据(使用$xml->asXml()
),description元素中的html尖括号都将转换为HTML实体。
这使标签正确解析,有用的p标签等。但是,在这种情况下 - PHP代码不会显示(被尖括号包围)。
我的问题是 - 我如何在RSS源中显示这样的东西?当它本身被解析为<
时,我怎样才能显示>
?那有意义吗?
这里是正在被输出的内容的示例:
<description><p>some content</p>
<p>WITH some code</p><p><?php
//test me out!
?></p>
</description>
(注这是不是一个错误之上 - 实体被全部转换)
我想它显示(在一个RSS阅读器)是
一些内容
一些代码
<?php
//test me out! ?>
您希望代码在代码中实际显示为代码,而不是执行,对吗?如果是这样,你需要逃避它,你会如果你希望它在HTML显示相同的方式,即:
htmlspecialchars("<?php echo 'example'; ?>")
,这将导致您的饲料在寻找更加乱码比它已经这样做,因为PHP会进行双重编码,一次用于RSS XML,另一次用于RSS XML中包含的HTML。
所有的RSS标签包含字符串,这样你就不能做你的PHP操作之前设置标签?
所以不是说:
$xml->description = 'Description <?php echo $var; ?>';
,你应该做的:
$xml->description = 'Description ' . $var;
什么是你想传递的PHP代码到你的RSS提要的原因是什么?我猜测很多Feed阅读器无法执行它。
我想**在下面的代码示例中显示**它......在...... **看**。我不希望代码被解析。我猜所有提要阅读器都不会执行PHP代码......如果他们确实在在线阅读器或本地机器上执行它,这将是一个相当严重的安全问题。 – alex 2009-08-11 00:14:40
我尝试过 - 但我无法让它工作。让我再试一次。感谢您的回答。 – alex 2009-08-11 01:46:23
我不得不使用它两次 - 我利用Kohana的html :: specialchars()。它丑陋地狱,但它的作品 - 行看起来像这样'$标记='
';' – alex 2009-08-11 13:36:31