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>