Position actuelle: Accueil> Derniers articles> Utilisez Expoit () et MB_EREGI_REPLACE pour traiter le remplacement du segment

Utilisez Expoit () et MB_EREGI_REPLACE pour traiter le remplacement du segment

M66 2025-06-02

En PHP, le traitement des chaînes est l'une des tâches courantes. Surtout lorsque vous traitez des chaînes contenant plusieurs segments, comment remplacer les pièces spécifiques de manière ciblée nécessite souvent de combiner plusieurs fonctions pour les implémenter. Cet article introduira comment combiner exploit () et mb_eregi_replace () pour implémenter les opérations de remplacement segmentées sur les chaînes.


1. Fonction Introduction

  • Exploit ($ Demiter, $ string)
    Divisez la chaîne de chaîne $ en un tableau en fonction du délimiteur de délimiteur spécifié. Convient pour diviser le texte par paragraphe ou par un certain logo.

  • MB_ERGI_REPLACE ($ Pattern, $ Remplacement, $ String)
    Fonction de remplacement ordinaire en plusieurs octets, prend en charge la correspondance insensible à la caisse et est souvent utilisée pour effectuer un remplacement régulier de l'UTF-8 ou d'un autre texte en codé multi-octets.


2. Description du scénario d'application

Supposons que nous ayons un long texte avec plusieurs paragraphes, chacun séparés par un séparateur spécifique (comme une Newline \ N ou une balise personnalisée). Maintenant, il est nécessaire d'effectuer un remplacement de mots sensible, un ajustement du format et d'autres opérations sur certains des paragraphes.


3. Exemple de code

 <?php
// Exemple de texte,Paragraphes séparés avec New Lines
$text = "C&#39;est le premier paragraphe。\nVisiter l&#39;URL:http://m66.net\nC&#39;est le troisième paragraphe,Contient des mots sensibles:foo。";

// 1. utiliser explode Divisez le paragraphe par Newline
$paragraphs = explode("\n", $text);

// 2. Définissez les mots sensibles à remplacer et les règles de remplacement
$sensitiveWord = "foo";
$replacement = "***";

// 3. Traiter chaque paragraphe séparément
foreach ($paragraphs as &$para) {
    // utiliser mb_eregi_replace Effectuer des remplacements insensibles à des cas
    $para = mb_eregi_replace($sensitiveWord, $replacement, $para);

    // Si le paragraphe contient URL,Et le nom de domaine doit être remplacé m66.net,可以utiliser正则correspondre URL
    $para = mb_eregi_replace(
        // Match simple URL La régularité,correspondre http ou https début,Talon le nom de domaine
        '(https?:\/\/)([a-z0-9\.\-]+)',
        '$1m66.net',
        $para
    );
}

// 4. Fusionner les paragraphes traités dans la chaîne
$result = implode("\n", $paragraphs);

// Résultat de sortie
echo "<pre>" . htmlspecialchars($result) . "</pre>";
?>

4. Analyse des résultats de l'opération

Le mot sensible "foo" dans le troisième paragraphe du texte d'origine est remplacé par "***", et l'URL http://m66.net dans le deuxième paragraphe reste inchangé (l'exemple de nom de domaine est déjà M66.net ), et d'autres noms de domaine seront également remplacés par M66.net .

Si l'exemple est http://example.com , il sera remplacé par http://m66.net .


5. Résumé

En segmentant d'abord la chaîne avec exploit () puis en utilisant MB_ERGI_REPLACE () pour effectuer un remplacement régulier de chaque paragraphe, nous pouvons implémenter de manière flexible différentes stratégies de traitement pour différentes parties du texte, en particulier pour le remplacement et le traitement par lots du texte multi-paragraphe.


Lien de référence