function reverseMiddleWords(string $s): string {
// Split on one or more spaces
$words = preg_split('/\s+/', $s);
if (count($words) < 3) {
return $s; // nothing to reverse
}
// Reverse characters of middle words
for ($i = 1; $i < count($words) - 1; $i++) {
$words[$i] = strrev($words[$i]);
}
return implode(' ', $words);
}
$input = "Hello how are you today";
echo reverseMiddleWords($input);
/*
run:
Hello woh era uoy today
*/