想要改进这篇文章? 提供这个问题的详细答案,包括引文和解释为什么你的答案是正确的。没有足够细节的答案可能会被编辑或删除。
我需要一个函数来返回两个单词(或两个字符)之间的子字符串。我想知道是否有一个 php 函数可以实现这一点。我不想考虑正则表达式(好吧,我可以做一个,但真的不认为这是最好的方法)。思想strpos和substr功能。这是一个例子:
strpos
substr
$string = "foo I wanna a cake foo";
我们调用这个函数:$substring = getInnerSubstring($string,"foo"); 它返回:“我想要一个蛋糕”。
$substring = getInnerSubstring($string,"foo");
更新: 嗯,到现在为止,我只能在一个字符串中获得两个单词之间的子字符串,你是否允许让我走得更远一点,问我是否可以扩展使用getInnerSubstring($str,$delim)来获取介于 delim 值之间的任何字符串,例子:
getInnerSubstring($str,$delim)
$string =" foo I like php foo, but foo I also like asp foo, foo I feel hero foo";
我得到一个像{"I like php", "I also like asp", "I feel hero"}.
{"I like php", "I also like asp", "I feel hero"}
如果字符串不同(即:[foo] 和 [/foo]),请查看 Justin Cook 的这篇文章。我在下面复制他的代码:
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)