Beim Erstellen von Webanwendungen ist die Verarbeitung von Benutzereingaben eine wichtige Aufgabe, insbesondere die Filterung sensibler Wörter. PHP bietet einige Multi-Byte-String-Funktionen, wobei mb_eregi_replace ein leistungsstarkes Tool ist, das für den Fall-unempfindlichen Ersatz von Zeichenfolgen in mehrsprachigen Umgebungen geeignet ist. In diesem Artikel wird erläutert, wie Sie mit mb_eregi_replace verwendet werden, um sensible Wörter im Text zu ersetzen.
MB_Eregi_Replace ist eine Funktion, die von PHP Multi-Byte-String-Erweiterung MBString bereitgestellt wird, und seine grundlegende Syntax lautet wie folgt:
mb_eregi_replace(string $pattern, string $replacement, string $string, string $option = ""): string|false
$ muster : Regelmäßiger Ausdruck, der mit der zu ersetzenden Zeichenfolge übereinstimmt (Fall unempfindlich).
$ Ersatz : Der für den Austausch verwendete Inhalt.
$ String : Original String.
$ Option : Optionaler Parameter, verwendet zur Angabe von Codierung und anderen Einstellungen.
Diese Funktion eignet sich für die Verarbeitung von Multi-Byte-Zeichensätzen wie UTF-8 und ist ideal für die Umgang mit chinesischen sensiblen Wortfilterung.
Hier ist ein einfaches Beispiel, das zeigt, wie sensible Wörter in einer Zeichenfolge durch mb_eregi_replace ersetzt werden:
<?php
// Liste der sensiblen Wörter
$sensitive_words = ['spielen', 'Pornographie', 'Gewalt'];
// Text zu verarbeiten
$input_text = "Diese Website enthältspielenUndPornographieInhalt,Zugang https://m66.net/play Es wird weitere Informationen geben。";
// Zeichen ersetzen
$replacement = '***';
// Ersetzen Sie alle sensiblen Wörter in einer Schleife
foreach ($sensitive_words as $word) {
$input_text = mb_eregi_replace($word, $replacement, $input_text);
}
echo $input_text;
?>
Ausgangsergebnis:
Diese Website enthält***Und***Inhalt,Zugang https://m66.net/play Es wird weitere Informationen geben。
Wie oben gezeigt, ersetzt mb_eregi_replace genau multibytempfindlich und verlässt die URL und andere Inhalte unverändert.
In praktischen Anwendungen können sensible Wörter Verformungen aufweisen, z. B. Hinzufügen von Räumen oder speziellen Symbolen. Wir können komplexere reguläre Ausdrücke verwenden, um die Erkennung beispielsweise zu verbessern:
<?php
$sensitive_words = ['Wette\s*Blog', 'Farbe\s*Zuneigung', 'Brutal\s*Gewalt'];
$input_text = "Dies ist eine Frage vonWette BlogInhalt,Auch enthaltenBrutal GewaltUndseZuneigung,请勿Zugang http://m66.net/bad.html。";
foreach ($sensitive_words as $word) {
$pattern = $word;
$input_text = mb_eregi_replace($pattern, '***', $input_text);
}
echo $input_text;
?>
Ausgabe:
Dies ist eine Frage von***Inhalt,Auch enthalten***Und***,请勿Zugang http://m66.net/bad.html。
Verwenden Sie \ s* , um alle Leerzeichen so zu entsprechen, dass die deformierten empfindlichen Wörter auch korrekt ersetzt werden können.
MB_Eregi_Replace wurde nach PHP 8.0 entfernt. Es wird empfohlen, PREG_REPLACE mit MB_CONVERT_ENCODING zu verwenden, um ähnliche Funktionen zu erzielen.
Stellen Sie sicher, dass die Mbtring -Erweiterung vor der Verwendung aktiviert ist.
Sonderzeichen im Matching -Muster sollten entkommen, da ansonsten ein regelmäßiger Übereinstimmungsfehler verursacht werden kann.
Mit MB_Eregi_Replace können wir in multi-lingualen Umgebungen problemlos einen genauen Austausch sensibler Wörter erreichen. Es muss sich jedoch seiner Kompatibilitätsprobleme bewusst sein. Es wird empfohlen, dass neue Projekte in Betracht ziehen, modernere Alternativen zu verwenden, z. In jedem Fall ist der Aufbau einer sicheren und gesunden Inhaltsumgebung immer eine wichtige Verantwortung für jeden Entwickler.