ConFoo 2025

mb_strripos

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

mb_strriposTrouve la position de la dernière occurrence d'une chaîne dans une autre, en ne tenant pas compte de la casse

Description

mb_strripos(
    string $haystack,
    string $needle,
    int $offset = 0,
    ?string $encoding = null
): int|false

mb_strripos() effectue une opération strripos() basée sur le nombre de caractères. La position needle est comptée depuis le début de haystack. La position du premier caractère est 0. Le second a comme position 1, etc.. Contrairement à mb_strrpos(), mb_strripos() n'est pas sensible à la casse.

Liste de paramètres

haystack

La chaîne depuis laquelle on récupère la position de la dernière occurrence de needle

needle

La chaîne à chercher dans haystack

offset

La position dans haystack à partir de laquelle on doit commencer à chercher

encoding

Nom de l'encodage à utiliser. Si ce paramètre est omis, l'encodage interne est utilisé.

Valeurs de retour

Retourne la position numérique de la dernière occurrence de needle dans la chaîne haystack, ou false si needle n'est pas trouvé.

Historique

Version Description
8.0.0 needle accepte désormais une chaîne vide.
8.0.0 encoding est désormais nullable.

Voir aussi

  • strripos() - Cherche la position de la dernière occurrence d'une chaîne contenue dans une autre, de façon insensible à la casse
  • strrpos() - Cherche la position de la dernière occurrence d'une sous-chaîne dans une chaîne
  • mb_strrpos() - Repère la dernière occurrence d'un caractère dans une chaîne

add a note

User Contributed Notes 2 notes

up
0
easai
14 years ago
Here are Java like startsWith/endsWith implementations in PHP.

<?php
function startsWith($haystack,$needle)
{
$res=FALSE;
if(
mb_strripos($haystack,$needle,0,"utf-8")==0)
$res= TRUE;
return
$res;
}

function
endsWith($haystack,$needle)
{
$res=FALSE;
$len=mb_strlen($haystack);
$pos=$len-mb_strlen($needle);
if(
mb_strripos($haystack,$needle,0,"utf-8")==$pos)
$res= TRUE;
return
$res;
}
?>
up
-1
ivrokrambler at gmail dot com
7 years ago
<?php
function backStrpos($str, $needle, $offset){
$needler = backStr($needle);
$strr = backStr($str);
$offsetr = strlen($str) - 1 - $offset;
$posr = mb_stripos($strr, $needler, $offsetr);
return
strlen($str) - 1 - $posr - strlen($needle);
}
function
backStr($str){
$str = str_replace(array('<', '>'), array('>', '<'), $str);
return
strrev($str);
}

function
backStrpos($str, $needle, $offset){
$needler = backStr($needle);
$strr = backStr($str);
$offsetr = strlen($str) - 1 - $offset;
$posr = mb_stripos($strr, $needler, $offsetr);
return
strlen($str) - 1 - $posr - strlen($needle);
}
function
backStr($str){
$str = str_replace(array('<', '>'), array('>', '<'), $str);
return
strrev($str);
}

$test = '<table><TR>TEXT</TR><TR>TEST</TR></table>';
$pos = mb_stripos($test, 'TEST', 0);
var_dump($pos);
var_dump(backStrpos($test, '<tr', $pos));
var_dump(backStrpos($test, '<tr', backStrpos($test, '<tr', $pos)));

------->
int(24)
int(19)
int(6)
To Top