Position actuelle: Accueil> Derniers articles> Conseils et méthodes pratiques pour éliminer les pièces spécifiées des chaînes à l'aide de la fonction MB_STRSTR

Conseils et méthodes pratiques pour éliminer les pièces spécifiées des chaînes à l'aide de la fonction MB_STRSTR

gitbox 2025-08-26

En PHP, lors du traitement des chaînes, nous devons souvent supprimer des pièces spécifiques d'une chaîne. La fonction MB_STRSTR () est une fonction de traitement de jeu de caractères multi -yte qui est particulièrement utile lors de la gestion des caractères non ASCII. Cet article présentera comment utiliser la fonction MB_STRSTR () pour supprimer la partie spécifiée d'une chaîne.

1. Introduction à la fonction MB_Strstr ()

MB_Strstr () est une fonction de chaîne multi -yte, qui est similaire à la fonction STRSTR () régulière, mais elle est conçue pour les jeux de caractères multi -yte (tels que UTF-8, Shift-Jis, etc.). Par conséquent, lorsque nous devons traiter les chaînes contenant des caractères non anglophones, MB_STRSTR () sera plus stable et fiable.

grammaire:

 <span><span><span class="hljs-title function_ invoke__">mb_strstr</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$needle</span></span><span>, </span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-variable">$before_needle</span></span><span> = </span><span><span class="hljs-literal">false</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$encoding</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>|</span><span><span class="hljs-literal">false</span></span><span>
</span></span>
  • $ Haystack : la chaîne cible à rechercher.

  • $ aiguille : la sous-chaîne à trouver.

  • $ before_needle (facultatif): si défini sur true , renvoyez la pièce avant l'aiguille , sinon retournez la pièce après l'aiguille .

  • $ Encoding (Facultatif): Spécifie le codage des caractères, la valeur par défaut est MB_internal_encoding () .

2. Retirez la partie spécifiée de la chaîne

Supposons que nous ayons une chaîne et que nous voulons en supprimer une partie. Nous pouvons trouver la pièce avec MB_Strstr () , puis la supprimer via des opérations de chaîne.

Exemple: supprimez la sous-chaîne spécifiée de la chaîne

Supposons que nous ayons la chaîne suivante:

 <span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"J&#39;aime étudierPHPprogrammation"</span></span><span>;
</span></span>

Nous espérons supprimer la pièce "d'apprentissage", nous pouvons d'abord utiliser MB_STRSTR () pour trouver l'emplacement de cette sous-chaîne, puis effectuer le traitement correspondant.

Implémentation du code:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"J&#39;aime étudierPHPprogrammation"</span></span><span>;
</span><span><span class="hljs-variable">$needle</span></span><span> = </span><span><span class="hljs-string">"étude"</span></span><span>;

</span><span><span class="hljs-comment">// utilisermb_strstrTrouver"étude"Où apparaître</span></span><span>
</span><span><span class="hljs-variable">$position</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_strstr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>);

</span><span><span class="hljs-comment">// Si trouvé"étude",Supprimer cette pièce</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$position</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-comment">// Supprimer la chaîne"étude"partie</span></span><span>
    </span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_substr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-title function_ invoke__">mb_strpos</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>)) . </span><span><span class="hljs-title function_ invoke__">mb_substr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-title function_ invoke__">mb_strpos</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>) + </span><span><span class="hljs-title function_ invoke__">mb_strlen</span></span><span>(</span><span><span class="hljs-variable">$needle</span></span><span>));
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"没有找到指定的partie"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

résultat:

 <span><span>J&#39;aimePHPprogrammation
</span></span>

3. Utilisez MB_Strstr () pour supprimer la pièce après la sous-chaîne

Si nous voulons supprimer uniquement la pièce après la sous-chaîne, nous pouvons utiliser le paramètre avant_NeEDLE de la fonction MB_STRSTR () .

Exemple: supprimez la pièce après la sous-chaîne

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"J&#39;aime étudierPHPprogrammation"</span></span><span>;
</span><span><span class="hljs-variable">$needle</span></span><span> = </span><span><span class="hljs-string">"étude"</span></span><span>;

</span><span><span class="hljs-comment">// Obtenir"étude"前的partie</span></span><span>
</span><span><span class="hljs-variable">$before</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_strstr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$before</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

résultat:

 <span><span>J&#39;aime
</span></span>

4. Exemple de suppression de plusieurs sous-chaînes

Si nous devons supprimer plusieurs sous-chaînes différentes de la chaîne, nous pouvons utiliser MB_Strstr () et d'autres fonctions de manipulation de chaîne en combinaison. Nous pouvons effectuer des tâches efficacement à travers des boucles et des expressions régulières.

Exemple: supprimer plusieurs sous-chaînes

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"J&#39;aime étudierPHPprogrammation和WebDéveloppement"</span></span><span>;
</span><span><span class="hljs-variable">$needles</span></span><span> = [</span><span><span class="hljs-string">"étude"</span></span><span>, </span><span><span class="hljs-string">"Web"</span></span><span>];

</span><span><span class="hljs-comment">// Supprimer plusieurs sous-chaînes</span></span><span>
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$needles</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$needle</span></span><span>) {
    </span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-title function_ invoke__">str_replace</span></span><span>(</span><span><span class="hljs-variable">$needle</span></span><span>, </span><span><span class="hljs-string">""</span></span><span>, </span><span><span class="hljs-variable">$str</span></span><span>);
}

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$str</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

résultat:

 <span><span>J&#39;aimePHPprogrammation和Développement
</span></span>

5. Choses à noter

  • MB_Strstr () est optimisé pour les jeux de caractères multi-octets. Il fonctionne généralement mieux que le STRSTR () conventionnel lorsqu'il s'agit de jeux de personnages, notamment chinois, japonais, coréen, etc.

  • Lors du traitement des caractères multipyte, assurez-vous que le format de codage correct est spécifié, sinon les résultats peuvent être inexacts.

  • Dans certains cas, en utilisant mb_substr () et mb_strpos () en combinaison, vous pouvez contrôler avec précision la position de suppression de la chaîne.

Conclusion

Grâce à la fonction MB_STRSTR () , nous pouvons facilement supprimer la partie spécifiée de la chaîne, en particulier dans le scénario de jeu de caractères multi-octets, qui a un effet très significatif. La compréhension et la maîtrise de ces techniques vous rendra non seulement plus efficace lorsque vous traitez des chaînes, mais évitera également certains problèmes de codage courants.