Position actuelle: Accueil> Derniers articles> Comment utiliser MB_STRISRT pour détecter s'il y a une sous-chaîne dans une chaîne? Tutoriel détaillé

Comment utiliser MB_STRISRT pour détecter s'il y a une sous-chaîne dans une chaîne? Tutoriel détaillé

M66 2025-06-26

Comment utiliser MB_STRISRT pour détecter s'il y a une sous-chaîne dans une chaîne? Tutoriel détaillé

En PHP, la manipulation des cordes est une tâche commune. Que vous traitiez l'entrée des utilisateurs, le traitement du contenu du fichier ou l'analyse des demandes de réseau, vous devrez souvent trouver ou manipuler des chaînes. Dans l'encodage multi-octets (comme UTF-8), les fonctions de chaîne standard peuvent ne pas être en mesure de gérer correctement certains caractères spéciaux, et à ce moment, MB_STRISRT devient un outil très pratique.

Qu'est-ce que MB_STRISRT ?

MB_STRSTR est une fonction fournie par l'extension de chaîne multi-octets (MBSTring) dans PHP. Sa fonction est similaire à STRRIST dans PHP, et est utilisée pour savoir si une autre sous-chaîne existe dans une chaîne, mais il est spécifiquement utilisé pour gérer des jeux de caractères multi -yte tels que UTF-8 ou d'autres encodages non ASCII.

  • Fonction : Recherchez si la chaîne cible contient la sous-chaîne spécifiée, ignorant le cas.

  • Valeur de retour : si la sous-chaîne existe, renvoie la pièce de la première occurrence de la sous-chaîne jusqu'à la fin de la chaîne; Si la sous-chaîne n'existe pas, renvoie false .

Comment utiliser MB_STRISRT ?

La syntaxe de base de la fonction MB_STRISRT est la suivante:

 <span><span><span class="hljs-title function_ invoke__">mb_stristr</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, qui est la grande chaîne que vous souhaitez rechercher.

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

  • $ before_needle : le paramètre facultatif, si il est défini sur true , renvoie la pièce avant que la sous-chaîne n'apparaisse d'abord. La valeur par défaut est fausse , indiquant que la pièce de la première occurrence de la sous-chaîne à la fin de la chaîne.

  • $ Encodage : paramètre facultatif, spécifiez le codage des caractères. Par défaut, MB_STRISRT utilise des paramètres de codage de caractères internes.

Exemple: utilisation simple

Supposons que vous ayez une chaîne et que vous avez besoin de savoir s'il contient une sous-chaîne spécifique.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$haystack</span></span><span> = </span><span><span class="hljs-string">"AccueillirPHPLe monde de la programmation!"</span></span><span>;
</span><span><span class="hljs-variable">$needle</span></span><span> = </span><span><span class="hljs-string">"PHP"</span></span><span>;

</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_stristr</span></span><span>(</span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"J&#39;ai trouvé la sous-chaîne!s&#39;avérer:"</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">"Aucune sous-chaîne trouvée。"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Dans le code ci-dessus, nous utilisons MB_STRST pour savoir si la sous-chaîne $ aiguille (c'est-à-dire "PHP") est incluse dans la bande de Hayst de String $ . S'il est trouvé, la pièce qui commence à partir de "PHP" jusqu'à la fin de la chaîne est renvoyée. Si cela n'est pas trouvé, FALSE est retourné.

La sortie sera:

 <span><span>J&#39;ai trouvé la sous-chaîne!s&#39;avérer:PHPLe monde de la programmation!
</span></span>

Ignorer le cas

Semblable à Strrist , MB_STRISRT est également insensible au cas, ce qui signifie qu'il ignore le cas des caractères. Donc, si $ cela est la lettre en minuscules "PHP" ou la lettre majuscule "PHP", elle peut toujours trouver la sous-chaîne correspondante.

Par exemple, le code suivant trouvera également la sous-chaîne:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$haystack</span></span><span> = </span><span><span class="hljs-string">"AccueillirphpLe monde de la programmation!"</span></span><span>;
</span><span><span class="hljs-variable">$needle</span></span><span> = </span><span><span class="hljs-string">"PHP"</span></span><span>;

</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_stristr</span></span><span>(</span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"J&#39;ai trouvé la sous-chaîne!s&#39;avérer:"</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">"Aucune sous-chaîne trouvée。"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Trouver des caractères multipyte à l'aide de mb_strist

Lorsque vous traitez avec les chaînes UTF-8, le strict standard peut ne pas gérer correctement les caractères multi -yte et MB_STRISRT peuvent éviter ce problème. Par exemple, lors du traitement des caractères chinois, MB_STRISRT peut effectuer correctement les recherches de caractères.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$haystack</span></span><span> = </span><span><span class="hljs-string">"Ceci est une chaîne de test chinoise"</span></span><span>;
</span><span><span class="hljs-variable">$needle</span></span><span> = </span><span><span class="hljs-string">"Chinois"</span></span><span>;

</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_stristr</span></span><span>(</span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"J&#39;ai trouvé la sous-chaîne!s&#39;avérer:"</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">"Aucune sous-chaîne trouvée。"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

La sortie sera:

 <span><span>J&#39;ai trouvé la sous-chaîne!s&#39;avérer:Chinois测试字符串
</span></span>

résumé

MB_STRSTR est une puissante fonction de recherche de chaînes multipies, particulièrement adaptée à la gestion des chaînes qui sont UTF-8 ou d'autres jeux de caractères non ASCII. Il est très similaire à la fonction STRRIST , la principale différence est qu'il peut gérer les caractères de plusieurs gobets, en évitant les problèmes causés par l'incompatibilité des caractéristiques.

En utilisant correctement MB_STRSTR , vous pouvez facilement détecter si une chaîne contient une sous-chaîne spécifiée et n'est pas affectée par le codage de cas ou de caractères. Espérons que grâce à ce tutoriel, vous pouvez mieux comprendre comment utiliser MB_STRISRT dans PHP pour la recherche de chaînes.