Bei der Verarbeitung von Benutzereingaben oder dynamisch generierten Inhalten müssen PHP -Entwickler häufig Zeichenfolgen ersetzen, wodurch sichergestellt wird, dass diese Daten strukturell und sicher bleiben, wenn sie mit JSON_Encode () am vorderen Ende übertragen werden. mb_eregi_replace ist eine Funktion in der Php-Multi-Byte-String-Erweiterung mbstring , die beim Umgang mit mehrsprachigen oder Unicode-Zeichenfolgen zuverlässiger ist als herkömmliche preg_replace . In diesem Artikel wird vorgestellt, wie Sie mit mb_eregi_replace zum Ersetzen von Daten und zum Kombinieren von JSON_Encode () zum Erreichen einer sicheren Datenübertragung einführen.
MB_Eregi_Replace () ist eine multibytensichere reguläre Ersatzfunktion mit der folgenden Syntax:
mb_eregi_replace(string $pattern, string $replacement, string $string, string $option = ""): string|false
Ähnlich wie bei Preg_Replace unterstützt es auch regelmäßige Ausdrücke, aber im Gegensatz zu MB_Ereg_Replace handelt es sich um eine von Fall unempfindliche Version (entspricht dem Standard -I- Modifikator auf).
Stellen Sie sich ein typisches Szenario vor: Sie müssen die URL in der Zeichenfolge ersetzen, alle Links abhauen, beginnend mit HTTP oder HTTPS durch sichere Platzhalter, und vermeiden Sie, dass Inhalte direkt von Benutzern als anklickbare Links hochgeladen werden.
$input = "Willkommen auf unserer Website:https://m66.net/page?id=123,Erfahren Sie mehr。";
$pattern = "(https?://[^\s]+)";
$replacement = "[Link blockiert]";
$cleaned = mb_eregi_replace($pattern, $replacement, $input);
echo $cleaned;
Ausgangsergebnis:
Willkommen auf unserer Website:[Link blockiert],Erfahren Sie mehr。
Wenn wir den ersetzten Inhalt auf das vordere Ende (z. B. über AJAX) übertragen, müssen wir ihn mit json_encode () codieren. Wenn das Ersatzergebnis Sonderzeichen wie " , \ n usw.) enthält, kann die direkte Übertragung das JSON -Format zerstören.
Schauen wir uns ein Beispiel an:
$data = [
"message" => mb_eregi_replace($pattern, $replacement, $input)
];
$json = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
echo $json;
Ausgangsergebnis:
{"message":"Willkommen auf unserer Website:[Link blockiert],Erfahren Sie mehr。"}
JSON_UNSCAPED_UNICODE UND JSON_UNSCAPED_SLASHES werden hier verwendet, wodurch eine redundante Flucht chinesischer Zeichen und URLs vermieden wird, wodurch das Front-End-Verarbeiten erleichtert wird.
Manchmal möchten wir nicht nur die gesamte URL ersetzen, sondern auch einige Informationen wie Domainnamen beibehalten. Wir können anonyme Funktionen verwenden, um es mit Rückrufen zu implementieren:
$pattern = "(https?://([a-z0-9\-\.]+)(/[^\s]*))";
$replacement = function ($matches) {
return "Links aus dem Domain -Namen:" . $matches[2]; // Extrahieren Sie den Domain -Namensteil
};
$input = "klicken Sie hier:https://m66.net/product/view?id=10 Überprüfen Sie die Details";
$cleaned = preg_replace_callback("/$pattern/i", $replacement, $input);
echo json_encode(["message" => $cleaned], JSON_UNESCAPED_UNICODE);
Ausgabe:
{"message":"klicken Sie hier:Links aus dem Domain -Namen:m66.net Überprüfen Sie die Details"}
Diese Methode kann URL -Informationen flexibel verarbeiten und sogar für Sicherheitsrichtlinien wie statistische Quellen und Domainnamenfilterung verwendet werden.
Über MB_Eregi_Replace können wir den String -Inhalt in mehreren Sprachen effizient und sicher ersetzen. In Kombination mit der vernünftigen Verwendung von JSON_Encode () können wir sicherstellen, dass die Struktur und der Inhalt der Daten während der Übertragung nicht beschädigt sind. Diese Kombination ist in der modernen PHP -Entwicklung sehr praktisch, insbesondere bei der Konstruktion internationaler Anwendungen, der reichen Textverarbeitung, der Sicherheitsüberprüfung und anderer Szenarien.
Durch das Mastering der kombinierten Anwendung dieser beiden Funktionen wird Ihre Fähigkeit zur Vorverarbeitung und sicherer Übertragung von Daten in der Daten erheblich verbessert.