array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'fr', ), 'this' => array ( 0 => 'function.strrpos.php', 1 => 'strrpos', ), 'up' => array ( 0 => 'ref.strings.php', 1 => 'Fonctions sur les chaînes de caractères', ), 'prev' => array ( 0 => 'function.strripos.php', 1 => 'strripos', ), 'next' => array ( 0 => 'function.strspn.php', 1 => 'strspn', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'fr', 'path' => 'reference/strings/functions/strrpos.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
strrpos — Cherche la position de la dernière occurrence d'une sous-chaîne dans une chaîne
Cherche la position numérique de la dernière occurrence de
needle
dans la chaîne haystack
.
haystack
La chaîne dans laquelle chercher.
needle
La chaîne à rechercher.
Antérieur à PHP 8.0.0, si needle
n'est pas une chaîne de caractères,
elle est convertie en un entier et appliqué en tant que valeur ordinal d'un caractère.
Ce comportement est obsolète à partir de PHP 7.3.0, et se fier à celui-ci
est fortement déconseillé. En fonction du comportement attendu,
needle
doit être transtypé explicitement en une chaîne de caractère,
ou un appel explicite à chr() doit être exécuté.
offset
Si zéro ou positif, la recherche est effectuée de gauche à droite
omettant les premiers offset
octets de
haystack
.
Si négatif, la recherche commence à offset
octets de la droite
au lieu de depuis le début de haystack
.
La recherche s'effectue de droite à gauche, cherchant la première
occurrence de needle
à partir de l'octet sélectionné.
Note:
Ceci est effectivement équivalent à la recherche de la dernière occurrence de
needle
à ou avant les derniersoffset
octets.
Retourne la position de la dernière occurrence de needle
relativement au début de la chaîne haystack
(indépendamment de la direction de recherche ou de l'offset).
Note: Les positions des chaîne de caractères débutent à 0, et pas à 1.
Retourne false
si la needle
n'a pas été trouvée.
Cette fonction peut retourner false
, mais elle peut aussi retourner une valeur équivalent à false
.
Veuillez lire la section sur les booléens pour plus d'informations.
Utilisez l'opérateur ===
pour tester la valeur de retour exacte de cette fonction.
Version | Description |
---|---|
8.0.0 |
needle accepte désormais une chaîne vide.
|
8.0.0 |
Passing an entier as needle is no longer supported.
|
7.3.0 |
Passer un entier comme before_needle a été
rendu obsolète.
|
Exemple #1 Vérifie si une occurrence est trouvée dans une chaîne
Il est facile de faire une erreur quant à la valeur retournée entre "caractère trouvé à la position 0" et "caractère non trouvé". Voici comme détecter cette différence :
<?php
$pos = strrpos($mystring, "b");
if ($pos === false) { // note : 3 signes "="
// non trouvé ...
}
?>
Exemple #2 Recherche avec des positions
<?php
$foo = "0123456789a123456789b123456789c";
// Chercher pour '0' depuis l'octet 0 (depuis le début)
var_dump(strrpos($foo, '0', 0));
// Chercher pour '0' depuis le 1er octet (après l'octet "0")
var_dump(strrpos($foo, '0', 1));
// Chercher pour '7' depuis le 21ème octet (après l'octet 20)
var_dump(strrpos($foo, '7', 20));
// Chercher pour '7' depuis le 29ème octet (après l'octet 28)
var_dump(strrpos($foo, '7', 28));
// Chercher pour '7' de droite à gauche depuis le 5ème octet depuis la fin
var_dump(strrpos($foo, '7', -5));
// Chercher pour 'c' de droite à gauche depuis le 2ème octet depuis la fin
var_dump(strrpos($foo, 'c', -2));
// Chercher pour '9c' de droite à gauche depuis le 2ème octet depuis la fin
var_dump(strrpos($foo, '9c', -2));
?>
L'exemple ci-dessus va afficher :
int(0) bool(false) int(27) bool(false) int(17) bool(false) int(29)