Fonction strpos
La fonction strpos renvoie la position
de la première occurrence d'une sous-chaîne dans une autre chaîne
ou false si la sous-chaîne n'est pas trouvée.
Le premier paramètre de la fonction est la chaîne
dans laquelle la recherche est effectuée, le deuxième paramètre
est la sous-chaîne à rechercher.
Par défaut, la fonction recherche depuis le début de la chaîne jusqu'à la première correspondance. Le début de la recherche peut être ajusté avec un troisième paramètre optionnel - s'il est spécifié, la recherche ne commencera pas au début de la chaîne, mais à partir de la position indiquée.
Il existe aussi la fonction stripos, qui
fait la même chose, mais sans tenir compte de la casse.
Syntaxe
strpos(string $haystack, string $needle, int $offset = 0): int|false
Exemple
Dans cet exemple, la fonction renverra la position du premier
caractère 'c'. Il occupe la position 2,
puisque le décompte commence à 0 :
<?php
echo strpos('abcde abcde', 'c');
?>
Résultat de l'exécution du code :
2
Exemple
Dans cet exemple, le troisième paramètre est spécifié et
par conséquent la recherche commencera à la troisième position,
dans ce cas la fonction trouvera le deuxième caractère
'c' et affichera sa position - 8 :
<?php
echo strpos('abcde abcde', 'c', 3);
?>
Résultat de l'exécution du code :
8
Exemple
Si la sous-chaîne n'est pas trouvée - la fonction
renverra false. Si la chaîne se trouve
au début, la fonction renverra 0.
Cela peut poser problème lors d'une comparaison
via une condition courte :
<?php
if (strpos('http://site.ru', 'http://')) {
echo '+++';
} else {
echo '---';
}
?>
Résultat de l'exécution du code (pas celui auquel nous nous attendions) :
'---'
Exemple
Effectuons une vérification correcte du début de la chaîne :
<?php
if (strpos('http://site.ru', 'http://') === 0) {
echo '+++';
} else {
echo '---';
}
?>
Résultat de l'exécution du code :
'+++'
Voir aussi
-
la fonction
strrpos,
qui renvoie la position de la dernière occurrence d'une sous-chaîne -
la fonction
str_contains,
qui vérifie la présence d'un caractère dans une chaîne -
la fonction
str_starts_with,
qui vérifie le début d'une chaîne -
la fonction
str_ends_with,
qui vérifie la fin d'une chaîne -
la fonction
array_search,
qui effectue une recherche dans un tableau