函数之间的字符串,以获取PHP中具有相同起始字符串和结束字符串的多个字符串。并将它们存储在数组变量中

函数之间的字符串,以获取PHP中具有相同起始字符串和结束字符串的多个字符串。并将它们存储在数组变量中,php,Php,我试图使用函数之间的字符串将其他人网站的内容解析到我的PHP项目中。但有多个字符串具有相同的“开始”和“结束”字符串。所以我想把它们都存储在一个数组变量中 通过我的stringbetween函数,它只返回第一个字符串 经验: 我的get_string_between函数是: function get_string_between($string, $start, $end) { $string = ' '.$string; $ini = strpos($s

我试图使用函数之间的字符串将其他人网站的内容解析到我的PHP项目中。但有多个字符串具有相同的“开始”和“结束”字符串。所以我想把它们都存储在一个数组变量中

通过我的stringbetween函数,它只返回第一个字符串

经验:

我的get_string_between函数是:

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);
    }
    $result=get_string_between($string, $start_string, $end_string);
它应该返回“f,kk”

但它只返回“f”。
我是PHP新手,请帮助我。

试试这个:

// this function is in case you want to return the second char from the start and the two chars before the last char at the end
function get_string_between($string) { // takes any string
if (strlen($string)>0) { // check if the string is not empty
    $first_litter = substr($string, 2, 1); // 2 to get first two char form the start and 1 to remove first char 
    $last_litter = substr($string, -3, -1); //-3 to get first three char form the start and -1 to remove last char 
    return ($first_litter . "," . $last_litter);
}
else
    return "string is empty";
}

如果您想要基于位置或垃圾本身的更动态的解决方案,请说

我相信正则表达式是您的最佳选择。
这将捕获开始和结束之间的内容,并将其作为数组返回给$matches[1]

Preg_match_all("/" . $start . "(.*?)" . $end ."/", $string, $matches);
Var_dump($matches);

添加代码请在($string,$start,$end){$string='.$string;$ini=strpos($string,$start);if($ini==0)返回“”;$ini+=strlen($start);$len=strpos($string,$end,$ini)-$ini;返回substr($string,$ini,$len);}所以你只想得到垃圾f和垃圾k,对吗?请在问题中添加代码。另外,请包括
$string
的值。为什么要在字符串开头加空格?(
$string='.$string;
)兄弟。。。我的绳子是可变的。字符串中没有固定的元素,也没有固定的长度。上面的字符串只是一个例子。解决方案应该是动态的,可以实现任何字符串。我知道你想得到任何字符串的最后2个字符串,-3给你任何字符串的最后3个字符串,-1将删除最后一个字符串,所以它可能对你来说不是动态的,但想想看,并测试它,如果它不起作用,告诉我,我将添加更多的动态code@GulzarAli 你总是想让第二个字母作为开头,两个小家伙作为结尾吗?但是小家伙的位置可能很诡异,因为一个小家伙可以在同一条绳子上存在不止一次是吗?所以你试过密码了吗?在我看来这一点都不难opinion@Gulzar点击我答案左边的勾号,即可接受已解决的答案
Preg_match_all("/" . $start . "(.*?)" . $end ."/", $string, $matches);
Var_dump($matches);