<?php
function get_all_substrings($input){
$subs = array();
$length = strlen($input);
for($i=0; $i<$length; $i++){
for($j=$i; $j<$length; $j++){
$subs[] = substr($input, $i, $j);
}
}
return $subs;
}
$subs = get_all_substrings("Hello world!");
print_r($subs);
?>
Даже если для этого есть причудливый двухслойный документ, я сомневаюсь, что он более эффективен или прост для понимания (для того, чтобы понять это, им, вероятно, придется взглянуть на документы. Большинство людей, вероятно, получают то, чтоsubstr обходится даже без поиска).