php获取两个带偏移量的字符串之间的字符串

php获取两个带偏移量的字符串之间的字符串,php,Php,如何将偏移量添加到此函数 例如: 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

如何将偏移量添加到此函数

例如:

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');

函数strpos实现一个偏移参数

试试这个

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

这真的是你想要的吗?我不确定实际的用法是什么,但是如果你想一次一个地检索所有的事件,而不仅仅是第一个,第二个,那么你应该考虑使用正则表达式匹配函数,而只显示第二个数据。第三个数据没有显示。我添加了第三个数据,偏移量=1,2显示第二个数据。
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);
}