0

フィードクリエーター(具体的には、Kohanaのfeed :: create())を使用していますが、description要素のテキストの一部が次のようになっている場合があります

以下のコードを参照してください

<?php echo 'example'; ?>

フィード作成者は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! ?>
4

2 に答える 2

2

コードを実行するのではなく、実際にコードとしてフィードに表示する必要がありますよね? その場合は、HTML で表示する場合と同じ方法でエスケープする必要があります。つまり、次のようになります。

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

PHP は、RSS XML 用に 1 回、RSS XML に含まれる HTML 用に 2 回エンコードされるため、これまでよりもさらに文字化けしたフィードになります。

于 2009-08-11T01:39:50.887 に答える
0

すべての RSS タグには文字列が含まれているため、タグを設定する前に PHP を操作することはできませんか?

だから言う代わりに:

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

あなたがやるべきです:

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

RSS フィードに PHP コードを渡したい理由は何ですか? いずれにせよ、多くのフィード リーダーは実行しないと思います。

于 2009-08-10T23:53:02.947 に答える