Aktueller Standort: Startseite> Neueste Artikel> Wie verwendete ich die Funktion mb_eregi_replace in Verbindung mit filter_var () zur Eingabereinigung und Ersatz?

Wie verwendete ich die Funktion mb_eregi_replace in Verbindung mit filter_var () zur Eingabereinigung und Ersatz?

M66 2025-06-23

Bei der Verarbeitung von Benutzereingaben in PHP ist sicherzustellen, dass der Eingangsinhalt sowohl sicher als auch im Einklang mit dem erwarteten Format ein wichtiger Zusammenhang in der Entwicklung ist. Insbesondere bei der Verarbeitung und Verhinderung potenzieller XSS-Angriffe mit mehreren Byte-String kann die Kombination von mb_eregi_replace () und filter_var () eine flexible und robuste Lösung liefern.

In diesem Artikel wird gezeigt, wie die von den Benutzern über diese beiden Funktionen übermittelten Daten effektiv reinigen und ersetzt werden können, um die Eingabe schlechter Inhalte zu verhindern und gültige Daten aufzubewahren.


1. Funktion Einführung

mb_eregi_replace ()

MB_Eregi_Replace () ist eine Multi-Byte-Version von eregi_replace () , die Fall-unempfindliche reguläre Ersatzvorgänge ausführt. Es unterstützt die UTF-8-Codierung und ist ideal, um Strings mit chinesischen oder anderen Multibyte-Charakteren zu behandeln.

 mb_eregi_replace(string $pattern, string $replacement, string $string, ?string $options = null): string

filter_var ()

filter_var () ist eine der von PHP bereitgestellten Filterfunktionen zum Überprüfen und Reinigen von Variablen. Es kann verwendet werden, um E -Mails, URL, IP und andere Formate zu überprüfen und potenziell schädliche Code -Snippets zu entfernen.

 filter_var(mixed $value, int $filter = FILTER_DEFAULT, array|int $options = 0): mixed

2. Praktische Anwendungsszenarien

Angenommen, wir möchten einen von Benutzer eingereichten Kommentarinhalt verarbeiten. Wir müssen die folgenden Schritte ausführen:

  1. Ersetzen Sie schlechte Worte (wie "Müll", "Betrüger" usw.);

  2. Überprüfen und behalten Sie die gültige URL -Adresse darin;

  3. Stellen Sie sicher, dass die Ergebnisse sauber, sicher und benutzerfreundlich sind.

Wir werden die Reinigungslogik mit diesem Ziel implementieren.


3. Beispielcode

Hier ist ein vollständiges Beispiel, das zeigt, wie man mb_eregi_replace () und filter_var () in Kombination verwendet:

 <?php
// Ursprüngliche Benutzereingabe
$input = "Sie haben den Benutzer aus,Gehen Sie schnellm66.net/spamBericht!außerdemm66.net/Schauen Sie sich die Betrügerseite an。";

// Wortschatz zu blockieren(Unterstützung Chinesisch)
$badWords = ['Müll', 'Betrug'];

// Ersetzen Sie sensible Wörter durch Sternchen
foreach ($badWords as $word) {
    $pattern = preg_quote($word, '/');
    $input = mb_eregi_replace($pattern, str_repeat('*', mb_strlen($word)), $input);
}

// ExtraktURLUnd überprüfen,Ersetzen Sie durch eine sichere Verbindung
$input = preg_replace_callback('/(https?:\/\/)?(m66\.net\/[^\s]+)/i', function ($matches) {
    $url = 'http://' . $matches[2]; // Hinzufügen zuhttpPräfix zur Überprüfung
    if (filter_var($url, FILTER_VALIDATE_URL)) {
        return '<a href="' . htmlspecialchars($url) . '" target="_blank">' . htmlspecialchars($url) . '</a>';
    }
    return '';
}, $input);

// Ausgangsergebnis
echo $input;
?>

4. Ausgangsbeispiel

Angenommen, die Benutzereingabe lautet:

 Du**Benutzer,Gehen Sie schnell<a href="http://m66.net/spam" target="_blank">http://m66.net/spam</a>Bericht!außerdem<a href="http://m66.net/****" target="_blank">http://m66.net/****</a>Schauen Sie sich auch die Seite an。