Думаю, вам не нужно создавать такую типичную функцию, если вы хотите найти строку между двумя подстроками, например:
$str = 'vishalOo59oOOo59oO';
preg_match('/Oo(.*?)oO/', $str, $match);
print_r($match);
Вывод:
Array
(
[0] => Oo59oO
[1] => 59
)
59
Позвольте мне знайте, если у вас возникнет какая-либо проблема
Изменить:
Также в вашем заявлении вы ничего не возвращаете в операторе else, вам нужно что-то вернуть, чтобы получить.
function get_string_between($string, $start, $end, $preo) {
if (strpos($string,$start)===FALSE) {
return $preo;
} else {
if (strlen($string)!==0) {
$ini = strpos($string, $start);
$pre = substr($string,0,$ini);
$ini += strlen($start);
$len = strpos($string, $end, $ini) - $ini;
$part = chr(substr($string, $ini, $len));
$preo .= $pre;
$preo .= $part;
$newString = substr($string, strlen($pre) + strlen(substr($string,$len)) + strlen($start) + strlen($end), strlen($string)-strlen($pre));
return get_string_between($newString,$start,$end,$preo);
}
}
}