Position actuelle: Accueil> Derniers articles> Utilisez MB_STRISRT pour trouver la première sous-chaîne dans une chaîne

Utilisez MB_STRISRT pour trouver la première sous-chaîne dans une chaîne

gitbox 2025-05-26

Lors du traitement des chaînes en PHP, il est souvent nécessaire de savoir s'il existe une sous-chaîne dans une autre chaîne. Pour les chaînes contenant des caractères mulabyte (comme le chinois, le japonais, le coréen, etc.), l'utilisation de fonctions de chaîne ordinaires (telles que STRSTR ou STRPOS ) peut provoquer un code brouillé ou des erreurs de reconnaissance. Pour le moment, vous pouvez utiliser la fonction sûre à plusieurs octets MB_STRISRT .

1. Qu'est-ce que MB_STRISRT?

MB_STRSTR est une fonction fournie par PHP MultiByte String Extension (MBSTRING) pour trouver une sous-chaîne qui apparaît pour la première fois dans une chaîne. Il est similaire à STRRIST , mais prend en charge le codage multi -yte et utilise UTF-8 par défaut.

La définition de la fonction est la suivante:

 mb_stristr(string $haystack, string $needle, bool $before_needle = false, ?string $encoding = null): string|false
  • $ Haystack : La chaîne d'origine à rechercher;

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

  • $ before_needle (facultatif): si vrai , renvoyez la pièce avant l'aiguille;

  • $ codage (facultatif): codage de caractères, par défaut est le codage interne (généralement UTF-8);

  • Valeur de retour: si elle est trouvée, renvoyez la chaîne restante (ou la pièce de préfixe) et si elle est trouvée, renvoyez false .

2. Exemples pratiques

Exemple 1: Trouvez et renvoyez le contenu après que la première sous-chaîne apparaît

Supposons que nous voulons savoir si une URL contient un mot-clé spécifique et obtenir la pièce qui commence par ce mot-clé:

 <?php
$url = "https://gitbox.net/docs/php/mbstring-guide";
$result = mb_stristr($url, "php");

if ($result !== false) {
    echo "J&#39;ai trouvé la sous-chaîne,Le résultat est:$result";
} else {
    echo "Aucune sous-chaîne trouvée";
}
?>

Sortir:

 J&#39;ai trouvé la sous-chaîne,Le résultat est:php/mbstring-guide

Explication: MB_STRISRT a trouvé avec succès le "PHP" qui est apparu pour la première fois et a renvoyé la chaîne à partir de cette partie.

Exemple 2: Obtenez le contenu avant que la sous-chaîne n'apparaisse

Parfois, nous nous soucions davantage de la pièce avant la sous-chaîne, comme l'obtention du chemin principal:

 <?php
$url = "https://gitbox.net/docs/php/mbstring-guide";
$result = mb_stristr($url, "php", true);

if ($result !== false) {
    echo "La pièce avant le mot-clé est:$result";
} else {
    echo "Aucune sous-chaîne trouvée";
}
?>

Sortir:

 La pièce avant le mot-clé est:https://gitbox.net/docs/

Lorsque le troisième paramètre est vrai , MB_STRISRT renvoie le contenu avant l'aiguille.

Exemple 3: Traitement des caractères multipyte (chinois)

Supposons que nous traitions une phrase contenant du chinois:

 <?php
$text = "Accueillirgitbox.net,C&#39;est un excellentPHPBibliothèque de ressources。";
$result = mb_stristr($text, "php");

if ($result !== false) {
    echo "Trouvé:$result";
} else {
    echo "Aucun contenu correspondant n&#39;a été trouvé";
}
?>

Notez que "PHP" ici est une recherche insensible à la cas, donc même "PHP" peut correspondre avec succès.

3. Quelle est la différence entre STRPOS?

  • MB_STRSTR est insensible au cas, tandis que MB_STRPOS est sensible à la casse;

  • MB_STRstr renvoie la sous-chaîne correspondante et ses parties suivantes, tandis que MB_STRPOS renvoie l'emplacement;

  • Le point le plus important est que MB_STRISRST prend en charge les caractères multi-octets pour éviter le code brouillé chinois.

4. Résumé

MB_STRSTR est un outil puissant pour gérer les tâches de la recherche de sous-chaînes dans des chaînes de multi-gytet, en particulier dans les environnements de codage UTF-8. Sa syntaxe est simple et fonctionnelle, et est idéale pour localiser et extraire rapidement les parties clés d'une chaîne.

Lorsque vous développez des applications PHP, en particulier lorsque vous traitez avec le contenu chinois, les chemins d'ouverture d'URL ou la saisie des utilisateurs, vous devez donner la priorité à l'utilisation de MB_STRISRT , qui peut éviter efficacement les problèmes de troncature des caractères et de code brouillé.