<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Cette partie du code n'a rien à voir avec le contenu de l'article,Par exemple la démonstration</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Commencez à exécuter le script...\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
<h2>strip_tags et preg_replace Lorsqu'il est utilisé ensemble,Comment implémenter le filtrage et le traitement des balises personnalisées?</h2>
<p>existerPHPmilieu,traiter avecHTMLQuand une chaîne,经常需要对其milieu的标签进行过滤或替换。<code></span><span><span class="hljs-title function_ invoke__">strip_tags</span></span><span>()
Comme on peut le voir à partir de l'exemple, seules les balises <strong> sont conservées et d'autres balises sont supprimées.
Preg_replace prend en charge les expressions régulières, qui peuvent être utilisées pour correspondre aux formats de balises complexes et même à gérer les attributs à l'intérieur des balises. Par exemple:
</span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-string">"<p class='intro'>Exemple de texte</p>"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">'/<p[^>]*>/i'</span></span><span>, </span><span><span class="hljs-string">'<div class="new-intro">'</span></span><span>, </span><span><span class="hljs-variable">$html</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>;
</span><span><span class="hljs-comment">// Sortir:<div class="new-intro">Exemple de texte</p></span></span><span>
Ici, nous utilisons régulièrement pour remplacer toutes les balises d'attribut <p> par une nouvelle classe & lt ; div & gt ; Tags. p > <h3> iii . Combiner Strip_tags et preg_replace pour implémenter le filtrage et le traitement des balises personnalisées H3 > <p> strip_tags a une fonction simple, et il est impossible de juger les attributs de balise, et il ne peut pas être compliqué de traiter le contenu de la balise. Combiné avec preg_replace , vous pouvez d'abord remplacer la balise personnalisée par la régularité en tant que balises standard ou effectuer des ajustements d'attribut, puis utiliser Strip_tags pour filtrer les balises non alloculées. P > <p> Exemple : nous voulons garder uniquement le & lt ; b & gt ; et & lt ; a & gt ; Tags, mais nous devons convertir les balises personnalisées & lt ; mytag & gt ; à & lt ; Span & gt ; et seulement l'attribut HREF pour le & lt ; a & gt ; Tags . p > <pre> <code> $ html = "c'est & lt ; mytag & gt ; tag personnalisé & lt ; / mytag & gt ;, et & lt ; a href = ' http : // Exemple . com ' title =' title '& gt ; link & lt ; / a & gt ; et & lt ; b & gt ; audacieux& ; / b & gt ;. "; // étape 1: remplacer & lt ; mytag & gt ; par & lt ; span & gt ; $ html = preg_replace (['/ & lt ; \ /? Mytag & gt ; / i '], [ function ($ correspond ) { return ) str_ireplace ([ 'mytag' , '/ mytag' ], [ 'span' , '/ span' ], $ correspond [ 0 ]); }], $ html ); // Étape 2: filtrez les attributs non-HREF de la balise <a> $ html = preg_replace_callback ( '/ <a \ s + ([^>] *)> / i' , fonction ( $ correspond ) { // conserver uniquement l'attribut HREF if ( preg_match ( '/ href \ s * = \ s * ["\']? ([^" \ '> \ s] +) ["\']? / i ' , $ correspond [ 1 ], $ hrefmatch )) { return ' <a href = "'. $ hrefmatch [1]. '"> ' ; } retour '<a>' ; }, $ html ); // Étape 3: Utilisez Strip_Tags pour conserver les balises spécifiées $ result = strip_tags ( $ html , '<b> <a> <span>' ); écho $ résultat ; De cette façon, le <mytag> original est remplacé par <span>, et la balise <a> conserve uniquement l'attribut HREF, et seuls les balises <b>, <a> et <pan> peuvent être conservées dans son ensemble, et d'autres balises sont supprimées.
La conception raisonnable des expressions régulières et la logique de filtrage en fonction des exigences est la clé de la mise en œuvre du filtrage et du traitement des étiquettes personnalisées.