Releyendo el texto del curso la función substr_count es la que parece que permite resolver más fácilmente este tipo de problemas (mejor que count_chars). Para cada apartado habría que buscar la función que mejor se adapta a resolver el problema.
El código para contar las vocales sería este:
<html>
<head><title>Ejemplo aprenderaprogramar.com</title></head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body>
<?php
echo '<h1> Apartado a)</h1>';
//Apartado a)
$cadena = 'El abecedario completo es algo largo y detallarlo exhaustivamente es costoso';
$numeroDeAs = substr_count($cadena, "a")+substr_count($cadena, "A");
$numeroDeEs = substr_count($cadena, "e")+substr_count($cadena, "E");
$numeroDeIs = substr_count($cadena, "i")+substr_count($cadena, "I");
$numeroDeOs = substr_count($cadena, "o")+substr_count($cadena, "O");
$numeroDeUs = substr_count($cadena, "u")+substr_count($cadena, "U");
echo 'Cadena: '.$cadena.'<br/><br/>';
echo 'Letra: a encontrada '. $numeroDeAs.' veces<br/>';
echo 'Letra: e encontrada '. $numeroDeEs.' veces<br/>';
echo 'Letra: i encontrada '. $numeroDeIs.' veces<br/>';
echo 'Letra: o encontrada '. $numeroDeOs.' veces<br/>';
echo 'Letra: u encontrada '. $numeroDeUs.' veces<br/>';
echo '</br></br>';
?>
</body>
</html>