Normalmente nunca hago el código, pero como me pareció una cosa interesante me puse a hacerlo a ver si tenia algún problema al realizarlo, y todo bien.
Código PHP:
<?php
$string = "Este texto tendrá formato después de unas cuantas funciones";
$palabrasEditadas = array();
$arrayPalabras = explode(" ", $string);
foreach($arrayPalabras as $palabra){
$letra = $palabra{0};
$letra = "<span style=\"color: #F00; font-size: 20px\">". $letra. "</span>";
$palabra{0} = "";
$palabra = $letra.$palabra;
$palabrasEditadas[] = $palabra;
}
$nuevoString = implode(" ", $palabrasEditadas);
echo $nuevoString;
?>
Como puedes ver he seguido los pasos de arriba, a excepción de que en vez de mostrarlo, lo meto en un array y usando la función implode lo convierto de nuevo en un string.
Un saludo