In PHP ist die String -Verarbeitung eine der gängigen Aufgaben. Insbesondere beim Umgang mit Zeichenfolgen, die mehrere Segmente enthalten, müssen bestimmte Teile auf gezielte Weise häufig mehrere Funktionen kombiniert werden, um sie zu implementieren. In diesem Artikel werden die Funktionen von exploit () und mb_eregi_replace () eingebracht, um segmentierte Ersatzvorgänge für Zeichenfolgen zu implementieren.
Exploit ($ delimiter, $ String)
Teilen Sie die Zeichenfolge $ $ in ein Array nach dem angegebenen Trennzeichen $ DELIMiter . Geeignet für die Aufteilung von Text nach Absatz oder durch ein bestimmtes Logo.
mb_eregi_replace ($ muster, $ ersatz, $ string)
Multi-byte-safe regelmäßige Ersatzfunktion unterstützt die Fall-unempfindliche Übereinstimmung und wird häufig verwendet, um einen regelmäßigen Austausch von UTF-8 oder anderen mit mehreren Byte-kodierten Texten durchzuführen.
Angenommen, wir haben einen langen Text mit mehreren Absätzen, die jeweils durch ein bestimmtes Trennzeichen getrennt sind (z. B. eine Newline \ n oder ein benutzerdefiniertes Tag). Jetzt ist es notwendig, einen sensiblen Wortersatz, die Formatanpassung und andere Operationen in einigen Absätzen durchzuführen.
<?php
// Beispieltext,Getrennte Absätze mit Newlines
$text = "Dies ist der erste Absatz。\nBesuchen Sie die URL:http://m66.net\nDies ist der dritte Absatz,Enthält sensible Wörter:foo。";
// 1. verwenden explode Teilen Sie den Absatz durch Newline auf
$paragraphs = explode("\n", $text);
// 2. Definieren Sie sensible Wörter, die ersetzt werden sollen, und Ersatzregeln
$sensitiveWord = "foo";
$replacement = "***";
// 3. Verarbeiten Sie jeden Absatz separat
foreach ($paragraphs as &$para) {
// verwenden mb_eregi_replace Machen Sie Fall-unempfindliche Ersetzungen
$para = mb_eregi_replace($sensitiveWord, $replacement, $para);
// Wenn der Absatz enthält URL,Und der Domain -Name muss ersetzt werden m66.net,可以verwenden正则übereinstimmen URL
$para = mb_eregi_replace(
// Einfaches Match URL Die Regelmäßigkeit,übereinstimmen http oder https Anfang,Ferse der Domain -Name
'(https?:\/\/)([a-z0-9\.\-]+)',
'$1m66.net',
$para
);
}
// 4. Fucken Sie die verarbeiteten Absätze wieder in die Zeichenfolge zusammen
$result = implode("\n", $paragraphs);
// Ausgangsergebnis
echo "<pre>" . htmlspecialchars($result) . "</pre>";
?>
Das sensible Wort "foo" im dritten Absatz im Originaltext wird durch "***" ersetzt, und die URL http://m66.net im zweiten Absatz bleibt unverändert (der Beispieldomänenname ist bereits m66.net ), und andere Domainnamen werden ebenfalls durch M66.net ersetzt.
Wenn das Beispiel http://example.com ist, wird es durch http://m66.net ersetzt.
Durch Segmentierung der Zeichenfolge mit exploit () und dann mit mb_eregi_replace () , um den regelmäßigen Austausch jedes Absatzes durchzuführen, können wir verschiedene Verarbeitungsstrategien für verschiedene Teile des Textes flexibel implementieren, insbesondere für den Ersatz und die Verarbeitung von Multi-Absatz-Text.