HTML-Sonderzeichen aus einer Zeichenfolge entfernen
Beim Erstellen eines RSS-Feeds ist es wichtig, HTML-Tags und Sonderzeichen zu entfernen, um die Kompatibilität sicherzustellen. Während strip_tags() Tags effektiv entfernt, bleiben häufig HTML-Sonderzeichen zurück.
Um dieses Problem zu beheben, gibt es zwei mögliche Lösungen:
html_entity_decode():
Diese Funktion dekodiert HTML-Entitäten und ersetzt sie durch die entsprechenden Zeichen. Zum Beispiel würde in ein Leerzeichen umgewandelt werden.
preg_replace():
Mit regulären Ausdrücken können Sie mit preg_replace() bestimmte Zeichenfolgen entfernen. Das folgende Muster gleicht HTML-Sonderzeichen ab und entfernt sie:
/&#?[a-z0-9]+;/i
Dieses Muster sucht nach Sequenzen, die mit beginnen, gefolgt von einer Kombination aus Buchstaben und Zahlen und am Ende mit einem Semikolon.
So implementieren Sie diese Lösung:
$content = preg_replace("/&#?[a-z0-9]+;/i", "", $content);
Jaccos Alternative:
Eine andere Option, wie von Jacco im Kommentarbereich vorgeschlagen, besteht darin, das folgende Muster zu verwenden:
/&#?[a-z0-9]{2,8};/i
Dieses Muster beschränkt die Ersetzung auf Sequenzen innerhalb eines bestimmten Zeichenbereichs und verringert so das Risiko, versehentlich nicht codierte & Zeichen zu ersetzen. Zeichen in Sätzen.
Das obige ist der detaillierte Inhalt vonWie entferne ich HTML-Sonderzeichen effektiv aus einer Zeichenfolge?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!