【发布时间】:2021-05-19 23:35:13
【问题描述】:
我正在使用 PHP 函数来获取字符串中两个分隔符之间的所有内容。但是,如果我多次出现该字符串,它只会选择第一个。例如,我将拥有:
|foo| hello |foo| nothing here |foo| world |foo|
并且代码只会输出“你好”。 我的功能:
function get_string_between($string, $start, $end){
$string = ' ' . $string;
$ini = stripos($string, $start);
if ($ini == 0) return '';
$ini += strlen($start);
$len = stripos($string, $end, $ini) - $ini;
return substr($string, $ini, $len);
}
【问题讨论】:
-
你用什么参数调用?预期的结果是什么?
-
您的代码中没有循环。你如何期望它返回多个东西?
-
字符串位置函数只返回他们找到的第一个匹配项。您可能想研究正则表达式。
-
您可以使用
strripos()查找字符串的最后一次出现。用它来查找$end。
标签: php string function strpos stripos