我正在使用Feed创建者(特别是Kohana的feed::create()),除了我的一些文字在描述元素中可能是这样的
见下面的代码
<?php echo 'example'; ?>
Feed创建者正在使用SimpleXML库。每当返回数据时(使用$xml->asXml()
),description元素中的html尖括号都将转换为HTML实体。
这使得标签被正确解析,对p标签等有用。但是,在这种情况下 - PHP代码不会显示(被尖括号包围)。
我的问题是 - 如何在RSS Feed中显示这样的内容?当>
本身被解析为<
时,如何显示<description><p>some content</p>
<p>WITH some code</p><p><?php
//test me out!
?></p>
</description>
?这有意义吗?
以下是输出内容的示例:
<?php
//test me out! ?>
(注意,这不是上面的错误 - 实体都已转换)
我想要显示的内容(在RSS阅读器中)是
一些内容
使用一些代码
{{1}}
答案 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源中的原因是什么?我猜很多饲料读者都不会执行它。