Aktueller Standort: Startseite> Neueste Artikel> Wenn Strip_Tags in Verbindung mit PREG_REPLACE verwendet wird, wie filtert und verarbeitet man benutzerdefinierte Tags?

Wenn Strip_Tags in Verbindung mit PREG_REPLACE verwendet wird, wie filtert und verarbeitet man benutzerdefinierte Tags?

gitbox 2025-08-26
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Dieser Teil des Codes hat nichts mit dem Inhalt des Artikels zu tun,Zum Beispiel Demonstration</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Beginnen Sie mit der Ausführung des Skripts...\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>

<hr>

<h2>strip_tags Und preg_replace Wenn zusammen verwendet,Implementieren Sie die Filterung und Verarbeitung von benutzerdefinierten Tags?</h2>

<p>existierenPHPMitte,bewältigenHTMLWenn String,经常需要对其Mitte的标签进行过滤或替换。<code></span><span><span class="hljs-title function_ invoke__">strip_tags</span></span><span>()

Wie aus dem Beispiel hervorgeht, werden nur die <strong> -Tags zurückgehalten und andere Tags gelöscht.

2. PREG_REPLACE wird für komplexere Übereinstimmungen und Austauschern verwendet

PREG_REPLACE unterstützt regelmäßige Ausdrücke, mit denen komplexe Tag -Formate angepasst und sogar Attribute in Tags verarbeitet werden können. Zum Beispiel:

 
</span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-string">"&lt;p class='intro'&gt;Beispieltext&lt;/p&gt;"</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">'/&lt;p[^&gt;]*&gt;/i'</span></span><span>, </span><span><span class="hljs-string">'&lt;div class="new-intro"&gt;'</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">// Ausgabe:&lt;div class="new-intro"&gt;Beispieltext&lt;/p&gt;</span></span><span>

Hier verwenden wir regelmäßig alle Attribut -Tags durch neue Klasse & lt ; div & gt ; Tags. p > <h3> iii . Kombinieren Sie Strip_Tags und PREG_REPLACE, um benutzerdefinierte Tag -Filterung und -verarbeitung zu implementieren H3 > <p> strip_tags hat eine einfache Funktion, und es ist unmöglich , die Tag -Attribute zu beurteilen, und es kann auch nicht kompliziert sein, mit dem Inhalt des Tags umzugehen. In Kombination mit PREG_REPLACE können Sie zuerst das benutzerdefinierte Tag als Standard-Tags durch Regelmäßigkeit ersetzen oder Attributanpassungen vornehmen und dann mit Strip_Tags nicht geloglierte Tags filtern. P > <p> Beispiel : Wir wollen nur das & lt ; B & gt ; und & lt ; a & gt ; Tags, aber wir müssen die benutzerdefinierten Tags & lt ; mytag & gt ; zu & lt ; span & gt ; und nur das HREF -Attribut für das & lt ; a & gt ; Tags . p > < pre href = ' http : // Beispiel . com ' title =' title '& gt ; link & lt ;/ a & gt ; und & lt ; B & gt ; deutlich& ; / B & gt ;. "// Schritt 1: Ersetzen Sie & lt ; mytag & gt ; mit & lt ; span & gt ; $ html = preg_replace (['/& lt ; \/? Mytag & gt ;/ i '], [ function ($ Matches ) { Return { return str_ireplace ([ 'mytag' , '/mytag' ], [ 'span' , '/span' ], $ Matches [ 0 ]); }], $ html ); // Schritt 2: Filtern Sie die Nicht-HREF-Attribute des <a> Tags heraus $ html = preg_replace_callback ( '/<a \ s+([^>]*)>/i' , function ( $ übereinstimmt ) { // behalten nur das HREF -Attribut bei if ( preg_match ( '/href \ s*= \ s*["\']? ([^" \ '> \ s]+) ["\']?/i ' , $ Matches [ 1 ], $ hrefMatch )) { return return ' <a href = "'. $ hrefMatch [1]. '"> ' ; } zurückkehren '<a>' ; }, $ html ); // Schritt 3: Verwenden Sie Strip_Tags, um die angegebenen Tags beizubehalten $ result = strip_tags ( $ html , '<b> <a> <span>' ); Echo $ Ergebnis ; Auf diese Weise wird das Original <MyTag> durch <span> ersetzt, und das <a> Tag behält nur das HREF -Attribut bei, und nur <b>, <a> und <span> Tags dürfen als Ganzes beibehalten werden und andere Tags werden entfernt.

4. Zusammenfassung

  • Strip_tags eignet sich zum schnellen Entfernen der meisten Tags, sodass einige einfache Tags beibehalten werden können.
  • PREG_REPLACE Kombiniert mit der Rückruffunktion kann komplexe Anforderungen flexibel behandeln, z. B. die Bekämpfung von Etiketten und die Attributfilterung.
  • Wenn Sie die beiden kombinieren, können Sie zuerst die regelmäßige Konvertierung oder Anpassung von Tags verwenden und dann Strip_Tags für die endgültige Filterung verwenden, um sicherzustellen, dass die Ausgabe -HTML sowohl sicher als auch den geschäftlichen Anforderungen entspricht.

Das angemessene Design regelmäßiger Ausdrücke und Filterlogik gemäß den Anforderungen ist der Schlüssel zur Implementierung der kundenspezifischen Etikettenfilterung und -verarbeitung.