我有一个函数,可以从$string中提取$start和$end之间的内容。
这种方法的问题是它只会返回字符串中第一个匹配项。例如:
我需要它来查找字符串中的最后一个出现,以便 $how_many_oranges = "8";
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);
}
这种方法的问题是它只会返回字符串中第一个匹配项。例如:
$text = "John has 13 oranges and Jane has 8 oranges";
$how_many_oranges = get_string_between($text,"has "," oranges");
echo $how_many_oranges; // echos "13"
我需要它来查找字符串中的最后一个出现,以便 $how_many_oranges = "8";
strrpos()
替换掉strpos()
。 - Phil$ini == 0
的检查很好奇,你为什么这样做?如果$start
在字符串的开头,strpos()
将会返回0
。你是不是想要检查$ini === false
,也就是无法找到字符串的情况? - Phil