【发布时间】:2018-06-25 01:38:52
【问题描述】:
我有一个函数可以在 $string 中提取 $start 和 $end 之间的内容
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";
【问题讨论】:
-
你可以把
strpos()换成strrpos() -
我很好奇
$ini == 0支票;你为什么这样做?如果$start位于字符串的开头,则strpos()将返回0。你是不是想检查$ini === false,即找不到字符串? -
那不就是在做同样的事情吗?即如果没有找到返回“”?
-
0 表示找到(在字符串的开头)
标签: php