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 "子串 “'$findme'” 第一次出现的位置:".stripos($string, $findme); echo "<br>子串 “'$findme'” 最后一次出现的位置:".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 :
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 "子串 “'$findme'” 在字符串 “'$string'” 中存在。"; }else{ echo "子串 “'$findme'” 在字符串 “'$string'” 中不存在。"; } if(strripos($string, $findme)!=FALSE){ echo "<br>子串 “'$findme'” 在字符串 “'$string'” 中存在。"; }else{ echo "<br>子串 “'$findme'” 在字符串 “'$string'” 中不存在。"; } ?>
Résultat de sortie :
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</code >. . <p><ul style="list-style-type: disc;"><li><img src="https://img.php.cn/upload/image/321/970/604/162813895035029Apprentissage de chaîne PHP pour déterminer si une sous-chaîne existe (insensible à la casse)" title="162813895035029Apprentissage de chaîne PHP pour déterminer si une sous-chaîne existe (insensible à la casse)" alt="Apprentissage de chaîne PHP pour déterminer si une sous-chaîne existe (insensible à la casse)"/><code>$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).
$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 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!$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 "子串 “'$findme'” 第一次出现的位置:".stripos($string, $findme,2);
echo "<br>子串 “'$findme'” 最后一次出现的位置:".strripos($string, $findme,-5);
?>