Maison  >  Article  >  développement back-end  >  Apprentissage de chaîne PHP pour déterminer si une sous-chaîne existe (insensible à la casse)

Apprentissage de chaîne PHP pour déterminer si une sous-chaîne existe (insensible à la casse)

青灯夜游
青灯夜游original
2021-08-05 12:12:072402parcourir

La comparaison et la recherche de chaînes sont les opérations les plus courantes. Dans l'article précédent "Apprentissage des chaînes PHP : comparaison de deux chaînes", nous avons présenté la méthode de comparaison des chaînes. L'article suivant vous guidera à travers l'opération de recherche de chaîne et présentera la méthode permettant de vérifier si une sous-chaîne existe.

Lorsque vous effectuez une opération de recherche de chaîne, vous devez parfois rechercher une sous-chaîne spécifiée (appelée sous-chaîne) dans une certaine chaîne pour voir si la sous-chaîne existe dans cette chaîne.

Nous faisons généralement le jugement en utilisant les fonctions intégrées de PHP pour trouver la première ou la dernière occurrence de cette sous-chaîne dans la chaîne. Il existe deux situations pour rechercher des chaînes : l'une est insensible à la casse, c'est-à-dire une recherche insensible à la casse ; l'autre est sensible à la casse, c'est-à-dire une recherche sensible à la casse. Voyons maintenant comment déterminer si une sous-chaîne existe sans respecter la casse.

Jetons un œil aux châtaignes ci-dessous.

<?php
header("Content-type:text/html;charset=utf-8");
$string = "ABCDCBAbcd";
$findme = "bC";
echo "子串  “&#39;$findme&#39;” 第一次出现的位置:".stripos($string, $findme);
echo "<br>子串  “&#39;$findme&#39;” 最后一次出现的位置:".strripos($string, $findme);
?>

Regardez le code dans l'exemple ci-dessus, quel sera, selon vous, le résultat ? La première occurrence est « 2 » et la dernière occurrence est « 8 », n'est-ce pas ? Jetons un coup d'œil au résultat :

Apprentissage de chaîne PHP pour déterminer si une sous-chaîne existe (insensible à la casse)

Oups, c'est en fait "1" et "7", pourquoi ? La raison est la suivante : La position de la chaîne commence à 0, pas à 1. Bien sûr, nous avons tort de calculer sur la base de la position de départ 1.

Nous pouvons donc utiliser le code suivant pour déterminer si la sous-chaîne existe

<?php
header("Content-type:text/html;charset=utf-8");
$string = "ABCDCBAbcd";
$findme = "bC";

if(stripos($string, $findme)!=FALSE){
	echo "子串  “&#39;$findme&#39;” 在字符串  “&#39;$string&#39;” 中存在。";
}else{
	echo "子串  “&#39;$findme&#39;” 在字符串  “&#39;$string&#39;” 中不存在。";
}

if(strripos($string, $findme)!=FALSE){
	echo "<br>子串  “&#39;$findme&#39;” 在字符串  “&#39;$string&#39;” 中存在。";
}else{
	echo "<br>子串  “&#39;$findme&#39;” 在字符串  “&#39;$string&#39;” 中不存在。";
}
?>

Résultat de sortie :

Apprentissage de chaîne PHP pour déterminer si une sous-chaîne existe (insensible à la casse)

Examinons ces deux fonctions en détail. La fonction

stripos($string,$find,$start) peut trouver la première occurrence d'une chaîne dans une autre chaîne (insensible à la casse). La fonction stripos($string,$find,$start)函数可以查找字符串在另一字符串中第一次出现的位置(不区分大小写)。

strripos($string,$find,$start)函数可以查找字符串在另一字符串中最后一次出现的位置(不区分大小写)。

这两个函数的参数是相似的,都接受两个必需参数$string$find,一个可省略参数$start

  • $string参数:用于指定要被查找的字符串。

  • $find参数:用于指定要查找的子串,可以包含一个或者多字符。(如果不是字符串类型,那么它将被转换为整型并被视为字符顺序值)。

  • $start参数:用于指定从$string 中的哪个字符开始查找,返回的位置数字值仍然相对于 $string 的起始位置。

但strripos()函数的$start参数允许使用负值,此时将使得查找从字符串的起始位置开始,到 $start

strripos($string,$find,$start) peut trouver la dernière occurrence d'une chaîne dans une autre chaîne (insensible à la casse).

Les paramètres de ces deux fonctions sont similaires. Elles acceptent toutes deux deux paramètres obligatoires $string et $find, et un paramètre omis $start. .

  • Apprentissage de chaîne PHP pour déterminer si une sous-chaîne existe (insensible à la casse)$string Paramètre : utilisé pour préciser la chaîne à trouver.
  • $find Paramètre : utilisé pour préciser la sous-chaîne à trouver, qui peut contenir un ou plusieurs caractères. (S'il ne s'agit pas d'un type chaîne, il est converti en entier et traité comme une valeur ordonnée par caractères).

  • Paramètre $start : utilisé pour spécifier à partir de quel caractère de $string commencer la recherche. La valeur numérique de position renvoyée est toujours relative à <. code>La position de départ de $string.

Cependant, le paramètre $start de la fonction strripos() autorise des valeurs négatives, ce qui fera démarrer la recherche depuis le début de la chaîne jusqu'à $ position de départ.

<?php
header("Content-type:text/html;charset=utf-8");
$string = "ABCDCBAbcd";
$findme = "bC";
echo "子串  “&#39;$findme&#39;” 第一次出现的位置:".stripos($string, $findme,2);
echo "<br>子串  “&#39;$findme&#39;” 最后一次出现的位置:".strripos($string, $findme,-5);
?>
Résultat de sortie :

🎜🎜🎜🎜D'accord, c'est tout si vous voulez savoir autre chose, vous pouvez cliquer ici. → →🎜Tutoriel vidéo php🎜🎜🎜 Enfin, je recommande de lire un cours classique "🎜PHP String Processing (Jade Girl Heart Sutra Edition)🎜", c'est gratuit~ venez apprendre ! 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn