Buenas, otra solución más (ejercicio CU00828B del curso de programación web con php):
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.
<!DOCTYPE html>
<html>
<head>
<title>Ejercicio. CU00828B</title>
<meta charset="utf-8">
</head>
<body>
<h1>Apartado a</h1>
<?php $texto = 'El abecedario completo es algo largo y detallarlo exhaustivamente es costoso'; $vocales = ['a', 'e', 'i', 'o', 'u']; $msg = ' Numero de veces que se repiten las vocales en la cadena de texto:<br/>' . $texto . '<br/>'; for($i = 0; $i < count($vocales); $i++) { $msg = $msg . 'La letra ' . $vocales[$i] . ' aparece ' . substr_count($texto, $vocales[$i]) . ' veces.<br/>'; } echo ($msg); ?>
<hr>
<h1>Apartado b</h1>
<?php $textoToLower = strtolower($texto); $arrayLetras = count_chars($textoToLower, 1); $msg = ' Numero de veces que se repiten las consonantes en la cadena de texto:<br/>' . $texto . '<br/>'; foreach($arrayLetras as $indiceNum => $veces) { if($indiceNum<>32 && $indiceNum<>97 && $indiceNum<>101 && $indiceNum<>105 && $indiceNum<>111 && $indiceNum<>117){ $msg = $msg . 'La letra ' . chr($indiceNum) . ' aparece ' . $veces . ' veces<br/>'; } } echo ($msg); ?>
<hr>
<h1>Apartado c</h1>
<?php $msg = 'Teniendo la cadena de texto:<br/>' . $texto . '<br/>Sustituiremos todas las "a" por el simbolo "*".<br/>'; $msg = $msg . str_replace('a', '*', $texto); echo ($msg); ?>
<hr>
<h1>Apartado d</h1>
<?php $msg = 'Teniendo la cadena de texto:<br/>' . $texto . '<br/>Mostramos la subcadena:<br/>'; $msg = $msg . ltrim(strstr($texto, 'completo'), 'completo'); echo ($msg); ?>
</body>
</html>
http://aprendehtml.byethost3.com/CU00828B/ejercicioCU00828B.php
Saludos.