如何获取字符串最后一次出现的位置?

gon*_*ime 4 php

我有一个函数可以提取 $string 内 $start 和 $end 之间的内容

function get_string_between($string, $start, $end){
    $string = " ".$string;
    $ini = strpos($string,$start);
    if ($ini == 0) return "";
    $ini += strlen($start);
    $len = strpos($string,$end,$ini) - $ini;
    return substr($string,$ini,$len);
}
Run Code Online (Sandbox Code Playgroud)

这样做的问题是它只会让我找到字符串中第一次出现的位置。每个例子:

$text = "John has 13 oranges and Jane has 8 oranges";
$how_many_oranges = get_string_between($text,"has "," oranges");
echo $how_many_oranges; // echos "13"
Run Code Online (Sandbox Code Playgroud)

我需要它来查找字符串中最后一次出现的位置,以便 $how_many_oranges = "8";

Phi*_*hil 5

正如我的评论中提到的,strpos()换成strrpos()

查找haystack 字符串中最后一次出现 Needle 的数字位置。

另外,我相信你应该改变

if ($ini == 0)
Run Code Online (Sandbox Code Playgroud)

if ($ini === false)
Run Code Online (Sandbox Code Playgroud)

$start如果位于 的开头,则前者将匹配$string$start如果根本找不到,后者将匹配。

演示 ~ https://eval.in/1027283