3v4l.org

run code in 300+ PHP versions simultaneously
<?php $str = "Do you see that ? Indeed, I can see that, as well as this." ; //$starting_words_array = array('I '); $starting_words_array = array('Do','I '); $ending_words_array = array('?',','); //array ([0] => 'Do you see that ?' [1] => 'I can see that,') function SearchString($str, $starting_words_array, $ending_words_array ) { $res = []; forEach($starting_words_array as $test) { $pos = strpos($str, $test); if ($pos===false) continue; $found = []; forEach($ending_words_array as $test2) { $posStart = $pos+strlen($test); $pos2 = strpos($str, $test2, $posStart); $found[] = ($pos2!==false) ? $pos2 : INF; } $min = min($found); if ($min !== INF) $res[]= substr($str,$pos,$min-$pos) .$str[$min]; } return $res; } $ans = SearchString($str, $starting_words_array, $ending_words_array ); print_r($ans);
Output for 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.27, 8.4.1 - 8.4.14
Array ( [0] => Do you see that ? [1] => I can see that, )

preferences:
180.84 ms | 407 KiB | 5 Q