J'essaie d'imprimer du code html qui n'est pas stocké sous forme de chaîne simple, donc je dois le décoder avant de faire écho, mon problème est que lorsque j'écho d'une valeur décodée, je continue à obtenir ces citations et ils ruinent la sortie , voici à quoi ça ressemble:

<div>
"<h1 class="ql-align-center">TEST</h1>"
</div>  

Donc à cause de ces guillemets "h1 n'a pas réussi à se former et il s'imprime sous forme de texte et non de code html. Donc je me demande s'il est possible d'imprimer en tant que code html signifiant qu'il n'y a pas de guillemets" "?

C'est le code php qu'il génère comme ça

<?php echo html_entity_decode($singleEmail['camp_desc'], ENT_NOQUOTES, 'UTF-8'); ?>

C'est aussi la valeur de la base de données de 'camp_desc' qui doit être encodée avant d'être imprimée

&amp;lt;h1 class=&amp;quot;ql-align-center&amp;quot;&amp;gt;TEST&amp;lt;/h1&amp;gt;

Et la sortie du code php ci-dessus pour encoder est

<h1 class="ql-align-center">TEST</h1> 

Mais puisque j'utilise echo pour imprimer ... php l'enveloppe avec des guillemets et la balise <h1> devient un texte brut au lieu d'un élément html

-1
Алекса Јевтић 27 août 2020 à 06:01

2 réponses

Meilleure réponse

Je ne sais pas d'où viennent les citations - le code que vous avez dans votre question n'ajoute pas de guillemets supplémentaires, donc ils viennent d'ailleurs.

Cependant, si vous souhaitez que la chaîne HTML soit rendue au format HTML au lieu d'afficher les balises sous forme de texte, vous pouvez effectuer les opérations suivantes:

En commençant par cette valeur dans votre variable:

&amp;lt;h1 class=&amp;quot;ql-align-center&amp;quot;&amp;gt;TEST&amp;lt;/h1&amp;gt;

affiché comme:

TEST

... vous pouvez utiliser html_entity_decode pour le décoder, ce qui nous donnera la sortie suivante, c'est-à-dire qu'il le convertit en une chaîne qui s'affichera sous forme de texte HTML lorsque vous en faites l'écho:

&lt;h1 class=&quot;ql-align-center&quot;&gt;TEST&lt;/h1&gt;

affiché comme:

TEST

... maintenant nous devons décoder ceci pour le transformer en éléments HTML qui seront affichés sous forme de balise H1 dans la page:

<h1 class="ql-align-center">TEST</h1>

affiché comme: TEST

Code : pour ce faire, vous devez appeler html_entity_decode deux fois avant d'afficher la chaîne sous forme d'éléments HTML:

<?php  
$htmlstr = html_entity_decode($singleEmail['camp_desc'], ENT_QUOTES, 'UTF-8');
echo html_entity_decode($htmlstr, ENT_NOQUOTES, 'UTF-8');  
?>
2
FluffyKitten 27 août 2020 à 06:58

Et si vous essayez de remplacer ces guillemets lorsque vous les faites écho?

Comme vous faites une expression régulière pour la remplacer ou vous créez une fonction qui remplace les deux parties que vous voulez comme str_replace('”<', '<', $yourDecodedHtml), str_replace('>”', '>', $yourDecodedHtml)

1
Tenusha Guruge 27 août 2020 à 06:59