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">'<p>Hello <b>world</b>!</p>'</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?
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.
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">'<div><b>Hello <i>world</i></b>!</div>'</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>-></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>-></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.
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">'<p><b>Hello <i>world</i>!</b></p>'</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">'<b><i>'</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 <i>world</i>!</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.
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">'<div><b>Hello <i>world</i></b>!</div>'</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">'<b><i>'</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">'/<[^>]+>/'</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