php使用offset获取两个字符串之间的字符串

function getdatabetween($string, $start, $end){
    $sp = strpos($string, $start)+strlen($start);
    $ep = strpos($string, $end)-strlen($start);
    $data = trim(substr($string, $sp, $ep));
    return trim($data);
}
$dt = "Hello cat bye Hello dog bye";
echo getdatabetween($dt, 'Hello', 'bye');

How do I add the offset to this function?

Example:

$dt = "Hello cat bye Hello dog bye";
echo getdatabetween($dt, 'Hello', 'bye', 0); //result = cat
echo getdatabetween($dt, 'Hello', 'bye', 1); //result = dog

The function strpos implements a offset param.

Try this

function getdatabetween($string, $start, $end, $offset){
        $sp = strpos($string, $start, $offset)+strlen($start);
        $ep = strpos($string, $end, $offset)-strlen($start);
        $data = trim(substr($string, $sp, $ep));
        return trim($data);
}