Maison > Article > développement back-end > Comment détecter si une sous-chaîne existe en php
4 méthodes : 1. Utilisez stripos() pour trouver la position d'occurrence d'une sous-chaîne, la syntaxe "stripos($str,$find)" 2. Utilisez strripos() pour trouver la position d'occurrence d'une sous-chaîne, la syntaxe "strripos($ str,$find)"; 3. Utilisez strpos() pour trouver la position d'occurrence de la sous-chaîne, la syntaxe "strpos($str,$find)" 4. Utilisez strrpos() pour trouver la position d'occurrence. de la sous-chaîne, la syntaxe "strrpos($ str,$find)".
L'environnement d'exploitation de ce didacticiel : système Windows 7, PHP version 8.1, ordinateur DELL G3
Lors de l'exécution d'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 un certaine chaîne) pour voir si la sous-chaîne existe dans cette chaîne.
Nous utilisons généralement 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 afin de porter un jugement. 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.
Cas 1 : Déterminer si la sous-chaîne existe (insensible à la casse)
Pour détecter si la sous-chaîne existe sans respecter la casse, vous devez utiliser les fonctions stripos() et strripos().
Les fonctions stripos() et strripos() peuvent vérifier la position d'occurrence de la sous-chaîne spécifiée sans tenir compte de la casse. Si la valeur de retour est FALSE, la sous-chaîne spécifiée n'existe pas.
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 :
Explication : fonctions stripos() et strripos()
stripos($string,$ The 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
的起始位置。
情况2:检测子串是不是存在(大小写敏感)
大小写敏感的检测子串是不是存在,需要使用strpos()和strrpos()函数。
strpos()和strrpos()函数可以大小写敏感的检查指定子串的出现位置,如果返回值为FALSE,则指定子串不存在。
示例:
<?php header("Content-type:text/html;charset=utf-8"); $string = "ABCDCBAbcd"; $findme1 = "bC"; $findme2 = "bc"; $pos1 = strpos($string, $findme1); $pos2 = strrpos($string, $findme1); $pos3 = strpos($string, $findme2); $pos4 = strrpos($string, $findme2); if($pos1 !=FALSE){ echo "子串 '$findme1' 在字符串 '$string' 中存在。"; }else{ echo "子串 '$findme1' 在字符串 '$string' 中不存在。"; } if($pos2 !=FALSE){ echo "<br>子串 '$findme1' 在字符串 '$string' 中存在。"; }else{ echo "<br>子串 '$findme1' 在字符串 '$string' 中不存在。"; } if($pos3 !=FALSE){ echo "<br>子串 '$findme2' 在字符串 '$string' 中存在。"; }else{ echo "<br>子串 '$findme2' 在字符串 '$string' 中不存在。"; } if($pos4 !=FALSE){ echo "<br>子串 '$findme2' 在字符串 '$string' 中存在。"; }else{ echo "<br>子串 '$findme2' 在字符串 '$string' 中不存在。"; } ?>
strpos()和strrpos()函数会区分大小写的在字符串$string
中查找子串$findme1
或者$findme2
。当完全匹配上,存在子串时,会返回子串在字符串的第一次或最后一次的出现位置;如果在字符串的没有找到子串,则返回FALSE
。
从上面的例子可以看出,只有子串"bc
"和字符串“ABCDCBAbcd
”是完全匹配,子串"bc
"被认为是存在于字符串“ABCDCBAbcd
”中的。因此输出结果为:
说明:strpos()和strrpos()函数
strpos($string,$find,$start)
函数可以返回子字符串首次出现的位置(区分大小写);
strrpos($string,$find,$start)
函数可以返回子字符串最后一次出现的位置(区分大小写);
strpos()和strrpos()函数相似,都接受两个必需参数$string
(被查找的字符串)和$find
(要查找的子串),一个可省略参数$start
strripos($string,$find,$start)
peut trouver la dernière occurrence d'une chaîne dans une autre chaîne (insensible à la casse).
$string
et $find
, et un paramètre omis $start
. .
$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.
<?php header("Content-type:text/html;charset=utf-8"); $string = "ABCabcabcABC"; $findme1 = "c"; $findme2 = "C"; echo "子串 '$findme1' 第一次出现的位置:".strpos($string, $findme1); echo "<br>子串 '$findme1' 最后一次出现的位置:".strrpos($string, $findme1); echo "<br>子串 '$findme2' 第一次出现的位置:".strpos($string, $findme2); echo "<br>子串 '$findme2' 最后一次出现的位置:".strrpos($string, $findme2); ?>🎜strpos() et strrpos() trouveront la sous-chaîne
$findme1
ou $ dans la chaîne <code>$string
en respectant la casse findme2. Lorsqu'il y a une correspondance exacte et qu'une sous-chaîne existe, la première ou la dernière occurrence de la sous-chaîne dans la chaîne sera renvoyée ; si la sous-chaîne n'est pas trouvée dans la chaîne, FALSE
sera renvoyé. 🎜🎜Comme le montre l'exemple ci-dessus, seules la sous-chaîne "bc
" et la chaîne "ABCDCBAbcd
" correspondent complètement, et la sous-chaîne "bc" >" est considéré comme présent dans la chaîne "<code>ABCDCBAbcd
". Le résultat de sortie est donc : 🎜🎜🎜🎜🎜Description : fonctions strpos() et strrpos()🎜🎜strpos($string,$find,$start )
La fonction peut renvoyer la position où la sous-chaîne apparaît pour la première fois (sensible à la casse 🎜strrpos($string,$find,$start)
Le la fonction peut renvoyer La position de la dernière occurrence de la sous-chaîne (sensible à la casse) ; 🎜$string (La chaîne à trouver) et <code>$find
(la sous-chaîne à trouver), et un paramètre facultatif $start
(la position de départ de la recherche). 🎜Remarque : la position de la chaîne commence à 0 et non à 1. 🎜🎜rrreee🎜Résultats de sortie : 🎜🎜🎜🎜🎜Apprentissage recommandé : "🎜Tutoriel vidéo PHP🎜"🎜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!