如何在PHP中获取两个字符串之间的子字符串?

我需要一个函数来返回两个单词(或两个字符)之间的子串.
我想知道是否有一个PHP功能实现了这一点.我不想考虑正则表达式(好吧,我可以做一个,但真的不认为这是最好的方式).考虑strpos和substr函数.
这是一个例子:

$string = "foo I wanna a cake foo";

我们调用函数:$substring = getInnerSubstring($string,“foo”);
它回归:“我想要一块蛋糕”.

提前致谢.

更新:
好吧,到现在为止,我只能在一个字符串中得到一个子串两个字,你是否允许让我走得更远,并问我是否可以扩展使用getInnerSubstring($str,$delim)来获取任何字符串在delim值之间,例如:

$string =" foo I like PHP foo, but foo I also like asp foo, foo I feel hero  foo";

我得到一个像{“我喜欢PHP”,“我也喜欢asp”,“我感觉英雄”这样的数组.

解决方法:

如果字符串不同(即:[foo]& [/ foo]),请查看Justin Cook的this post.
我复制下面的代码

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

$fullstring = 'this is my [tag]dog[/tag]';
$parsed = get_string_between($fullstring, '[tag]', '[/tag]');

echo $parsed; // (result = dog)

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...