Старый вопрос, но если кто-то ищет способ найти вхождения в конце строки (например, 3-е вхождение точки в конце), то работает следующая функция (не хотел использовать функцию oncodes, чтобы не связываться с нейкодировка)
$str = "NooooYesYesNo";
function find_occurence_from_end($haystack, $needle, $num) {
for ($i=1; $i <=$num ; $i++) {
# first loop return position of needle
if($i == 1) {
$pos = strrpos($haystack, $needle);
}
# subsequent loops trim haystack to pos and return needle's new position
if($i != 1) {
$haystack = substr($haystack, 0, $pos);
$pos = strrpos($haystack, $needle);
}
}
return $pos;
}
$pos = find_occurence_from_end($str, "Yes", 2);
// 5
Это супер просто.По сути, каждый раз, когда он находит вхождение вашей иглы, он «обрезает» нить до этой позиции.Таким образом, он продолжает обрезать его, возвращая последнюю позицию каждый раз.