Domanda

Sto utilizzando un creatore di feed (in particolare, Kohana's feed::crea()), tranne che parte del mio testo potrebbe essere così nell'elemento descrizione

Vedi il codice qui sotto

<?php echo 'example'; ?>

Il creatore del feed utilizza la libreria SimpleXML.Ogni volta che i dati vengono restituiti (utilizzando $xml->asXml()) le parentesi angolari html all'interno dell'elemento descrizione vengono convertite in entità HTML.

Ciò fa sì che i tag vengano analizzati correttamente, utile per i tag p e simili.Tuttavia, in questo caso, il codice PHP non verrà visualizzato (essendo racchiuso tra parentesi angolari).

La mia domanda è: come posso mostrare cose del genere in un feed RSS?Come posso visualizzare &gt; quando esso stesso viene analizzato come <?Ha senso?

Ecco un esempio di ciò che viene prodotto:

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

(Nota non si tratta di un errore riportato sopra: le entità vengono tutte convertite)

Quello che mi piacerebbe che venisse visualizzato (in un lettore RSS) è

alcuni contenuti

CON qualche codice

<?php
     //test me out! ?>
È stato utile?

Soluzione

Vuoi che il codice venga effettivamente visualizzato nel feed come codice, non eseguito, giusto?In tal caso, devi eseguire l'escape nello stesso modo in cui lo faresti se volessi visualizzarlo in HTML, ovvero:

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

Ciò farà sì che il tuo feed sembri ancora più confuso di quanto non sia già, perché il PHP sarà doppiamente codificato, una volta per l'XML RSS e un'altra per l'HTML contenuto nell'XML RSS.

Altri suggerimenti

Tutti i tag RSS contengono stringhe, quindi non puoi semplicemente eseguire la manipolazione PHP prima di impostare il tag?

Quindi invece di dire:

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

dovresti fare:

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

Qual è il motivo per cui desideri passare il codice PHP nel tuo feed RSS?Immagino che molti lettori di feed non lo eseguirebbero comunque.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top