Hola colegas. Aquí traigo mi posible solución del punto a, b, c y d, de este tema Solo que quería saber si así como lo realice esta bien, y en el caso de que lo este, me gustaría saber de que forma puedo mejorar y optimizar.. Estaré agradecido con ustedes. Muchas gracias.
EJERCICIO
Crear archivos php que ejecuten la tarea indicada:
a) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso", indicar cuántas veces aparece cada vocal usando funciones para cadenas PHP.
b) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso", indicar qué consonantes son las que aparecen y cuántas veces aparecen usando funciones para cadenas PHP.
c) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso", mostrar la cadena donde todas las a hayan sido sustituídas por el símbolo *. Por ejemplo en lugar de <<El abecedario…>> se habrá de mostrar <<El *beced*rio…>>
d) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso", mostrar la subcadena desde la primera aparición de <<completo>> excluyendo completo, es decir, deberá mostrarse << es algo largo y detallarlo exhaustivamente es costoso>>. Para ello usa una o varias funciones para cadenas PHP.
POSIBLE SOLUCION:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
</head>
<body>
<?php $consonantes = array("b", "d", "f", "g", "h", "j", "k", "l", "m", "n", "ñ", "p", "q", "r", "s", "t", "v", "x", "y", "z"); $cadena = "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso"; echo "<br/> APARTADO A) <br/>"; $resul = count_chars($cadena, 1); foreach ($resul as $key => $value) { echo chr($key) . " -> " . $value . "<br/>"; } echo "<br/> APARTADO B) <br/>"; for ($i=0; $i < strlen($cadena); $i++) { $subcadenitas = substr($cadena, $i, 1); for ($j=0; $j < count($consonantes); $j++) { if ($subcadenitas == $consonantes[$j]) { $agregando = $agregando . $subcadenitas; break; } } } $resul2 = count_chars($agregando, 1); foreach ($resul2 as $key => $value) { echo chr($key) . " -> " . $value . "<br/>"; } echo "<br/> APARTADO C) <br/>"; $resul3 = str_replace("a", "*", $cadena); echo "Resultado: " . $resul3; echo "<br/><br/>APARTADO D) <br/>"; $cortar = strstr($cadena, "completo", false); $resul4 = trim($cortar, "completo"); echo $resul4; ?>
</body>
</html>