Aktueller Standort: Startseite> Neueste Artikel> Wie verwendet ich die Funktion von Strip_Tags, um Zeichenfolgen zu verarbeiten, die verschachtelte HTML -Tags enthalten, um Tag -Störungen zu vermeiden?

Wie verwendet ich die Funktion von Strip_Tags, um Zeichenfolgen zu verarbeiten, die verschachtelte HTML -Tags enthalten, um Tag -Störungen zu vermeiden?

gitbox 2025-06-22

Grundlegende Verwendung von Strip_tags () Funktion

Die Funktion der Funktion strip_tags () besteht darin, alle HTML- und PHP -Tags aus der Zeichenfolge zu entfernen. Die grundlegende Syntax ist wie folgt:

 <span><span><span class="hljs-title function_ invoke__">strip_tags</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span>|</span><span><span class="hljs-literal">null</span></span><span> </span><span><span class="hljs-variable">$allowable_tags</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>
</span></span>
  • $ str : Eine Zeichenfolge, die verarbeitet werden soll.

  • $ zulässiger_Tags : Ein optionaler Parameter, der die Tags angibt, die beibehalten werden dürfen. Wenn nicht angegeben, werden alle Tags standardmäßig entfernt.

Beispiel:

 <span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-string">'&lt;p&gt;Hello &lt;b&gt;world&lt;/b&gt;!&lt;/p&gt;'</span></span><span>;
</span><span><span class="hljs-variable">$clean_text</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strip_tags</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">$clean_text</span></span><span>;  </span><span><span class="hljs-comment">// Ausgabe:Hello world!</span></span><span>
</span></span>

Wie oben gezeigt, entfernt Strip_Tags () standardmäßig alle HTML -Tags. Wenn eine Zeichenfolge verschachtelte Tags enthält, wie können Sie sicherstellen, dass die Entfernung korrekt ist und kein Fehler vorliegt?


Tipps zum Umgang mit verschachtelten HTML -Tags

Beim Umgang mit komplexen HTML -Strukturen benötigt das Verhalten von strip_tags () besondere Aufmerksamkeit. Wenn die HTML -Struktur nicht standardisiert ist oder die Tags zu tief verschachtelt sind, kann die erwarteten Ergebnisse nicht direkt mit Strip_Tags () verwendet werden. Beispielsweise können verschachtelte Tags dazu führen, dass einige Tags nicht vollständig entfernt werden, oder das verarbeitete String -Format ist nicht wie erwartet.

1. Stellen Sie sicher

Verschachtelte HTML -Tags können manchmal nicht der Spezifikation entsprechen, was dazu führt, dass Strip_tags () nicht ordnungsgemäß funktioniert. Um dieses Problem zu lösen, sollten Sie zunächst sicherstellen, dass der HTML -Code eine Spezifikation ist. Die HTML -Struktur kann unter Verwendung der Domdocument -Klasse von PHP geladen und normalisiert werden.

 <span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-string">'&lt;div&gt;&lt;b&gt;Hello &lt;i&gt;world&lt;/i&gt;&lt;/b&gt;!&lt;/div&gt;'</span></span><span>;
</span><span><span class="hljs-variable">$dom</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DOMDocument</span></span><span>();
</span><span><span class="hljs-title function_ invoke__">libxml_use_internal_errors</span></span><span>(</span><span><span class="hljs-literal">true</span></span><span>);  </span><span><span class="hljs-comment">// VernachlässigungHTMLFehler im Format</span></span><span>
</span><span><span class="hljs-variable">$dom</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">loadHTML</span></span><span>(</span><span><span class="hljs-variable">$html</span></span><span>);
</span><span><span class="hljs-variable">$clean_html</span></span><span> = </span><span><span class="hljs-variable">$dom</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">saveHTML</span></span><span>();
</span><span><span class="hljs-variable">$clean_text</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strip_tags</span></span><span>(</span><span><span class="hljs-variable">$clean_html</span></span><span>);  </span><span><span class="hljs-comment">// verwendenstrip_tagsTags entfernen</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$clean_text</span></span><span>;  </span><span><span class="hljs-comment">// Ausgabe:Hello world!</span></span><span>
</span></span>

Durch Domdocument können wir zuerst den HTML -Code laden und reparieren und dann mit der Funktion von Strip_Tags () die Tags aufräumen.

2. Lassen Sie einige Tags erhalten bleiben

Wenn nur bestimmte Tags beibehalten werden müssen, können Sie die Tags angeben, die über den zweiten Parameter beibehalten werden dürfen. Wenn Sie beispielsweise nur die <b> und <i> -Tags behalten möchten, entfernen Sie alle anderen Tags:

 <span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-string">'&lt;p&gt;&lt;b&gt;Hello &lt;i&gt;world&lt;/i&gt;!&lt;/b&gt;&lt;/p&gt;'</span></span><span>;
</span><span><span class="hljs-variable">$clean_text</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strip_tags</span></span><span>(</span><span><span class="hljs-variable">$html</span></span><span>, </span><span><span class="hljs-string">'&lt;b&gt;&lt;i&gt;'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$clean_text</span></span><span>;  </span><span><span class="hljs-comment">// Ausgabe:Hello &lt;i&gt;world&lt;/i&gt;!</span></span><span>
</span></span>

Auf diese Weise entfernen Strip_Tags () alle Tags, die nicht in der zulässigen Liste enthalten sind, und nur <b> und <i> Tags werden beibehalten, um eine Störung anderer Tags zu vermeiden.

3.. Filterfilter -Tags in Kombination mit regulären Ausdrücken filtern

Manchmal ist es möglicherweise nicht gut genug, sich auf Strip_tags () zu verlassen, insbesondere wenn es sich um komplexe HTML -Strukturen handelt. Zu diesem Zeitpunkt können wir die Zeichenfolge in Kombination mit regulären Ausdrücken weiter reinigen und verschachtelte Tags oder andere unnötige Teile entfernen.

 <span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-string">'&lt;div&gt;&lt;b&gt;Hello &lt;i&gt;world&lt;/i&gt;&lt;/b&gt;!&lt;/div&gt;'</span></span><span>;
</span><span><span class="hljs-variable">$clean_text</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strip_tags</span></span><span>(</span><span><span class="hljs-variable">$html</span></span><span>, </span><span><span class="hljs-string">'&lt;b&gt;&lt;i&gt;'</span></span><span>);  </span><span><span class="hljs-comment">// Entfernen Sie zuerst unerwünschte Tags</span></span><span>
</span><span><span class="hljs-variable">$clean_text</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">'/&lt;[^&gt;]+&gt;/'</span></span><span>, </span><span><span class="hljs-string">''</span></span><span>, </span><span><span class="hljs-variable">$clean_text</span></span><span>);  </span><span><span class="hljs-comment">// 再verwenden正则移除剩余的HTMLEtikett</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$clean_text</span></span><span>;  </span><span><span class="hljs-comment">// Ausgabe:Hello world!</span></span><span>
</span></span>

Diese Methode kann Sie beim Reinigen der Tags raffinierter machen.

  • Verwandte Tags:

    HTML