Frage

Ich benutze einen Feed -Schöpfer (insbesondere Kohana's Feed :: Create ()), außer dass ein Teil meines Textes im Beschreibungselement so sein könnte

Siehe Code unten

<?php echo 'example'; ?>

Der Feed Creator verwendet die Simplexml -Bibliothek. Wann immer die Daten zurückgegeben werden (Verwenden $xml->asXml()) Die HTML -Winkelklammern im Beschreibungselement werden in HTML -Entitäten konvertiert.

Dadurch werden die Tags richtig analysiert, nützlich für P -Tags und dergleichen. In diesem Fall wird jedoch der PHP -Code nicht angezeigt (umgeben von Winkelklammern).

Meine Frage ist: Wie kann ich solche Sachen in einem RSS -Feed zeigen? Wie kann ich anzeigen &gt; Wenn es selbst als zurückgezogen wird als <? Ist das sinnvoll?

Hier ist ein Beispiel für das, was ausgegeben wird:

<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>

(Hinweis Das ist kein Fehler oben - die Entitäten werden alle konvertiert)

Was ich möchte (in einem RSS -Leser), ist

einige Inhalte

Mit etwas Code

<?php
     //test me out! ?>
War es hilfreich?

Lösung

Sie möchten, dass der Code tatsächlich im Feed als Code angezeigt wird, nicht ausführen, oder? Wenn ja, müssen Sie es genauso entkommen, wie Sie es tun würden, wenn Sie es in HTML anzeigen möchten, dh:

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

Dies führt dazu, dass Ihr Feed noch verstümmter aussieht als bereits, da der PHP doppelt kodiert wird, einmal für das RSS XML und erneut für die im RSS XML enthaltenen HTML.

Andere Tipps

Alle RSS -Tags enthalten Zeichenfolgen. Sie können also nicht einfach Ihre PHP -Manipulation durchführen, bevor Sie das Tag festlegen?

Also anstatt zu sagen:

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

Sie sollten tun:

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

Was ist der Grund, warum Sie PHP -Code in Ihren RSS -Feed übergeben möchten? Ich vermute, dass viele Feed -Leser es sowieso nicht ausführen würden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top