Hola, el punto a) lo tienes perfecto, es decir, si se cambia la longitud de la palabra siguen mostrándose siempre cinco asteriscos a derecha e izquierda
El punto b) haz hecho una comparación de cada letra. Podrías completarlo añadiendo si las tres letras (en conjunto) son iguales o no. Abajo te pongo cómo sería el código con este añadido.
El punto c)
La cadena "ApRendEr A proGraMar.cOm" tiene una longitud de 24 caracteres (incluyendo los espacios).
La mitad es 12. Por tanto debería rellenarse con 12 asteriscos a derecha e izquierda. En tu código tienes escrito
$longitud = $aux + ($aux / 2);
De este modo la nueva longitud es 24 más 12 que quedan como 6 asteriscos + 24 caracteres + 6 asteriscos
Para rellenar con 12 asteriscos a derecha e izquierda simplemente usaríamos $longitud = 2*$aux; para el caso de que sea par, de este modo la cadena pasa a tener 48 caracteres y se conforma así: 12 asteriscos + 24 caracteres + 12 asteriscos.
Supongamos que la cadena tenga 25 caracteres. En este caso la mitad resulta 12.50 y usamos entones la mitad de su longitud más uno, es decir la mitad de 26 que es 13. La cadena tiene que quedar con 13 asteriscos a la izquierda + 25 caracteres + 13 asteriscos a la derecha, total de 51 caracteres. Aquí la cadena era de 25 y el relleno en total es de 26.
Para lograr esto usamos $longitud = 2*$aux + 1;
De este modo siempre quedan el mismo número de asteriscos al lado derecho e izquierdo.
El código con estos pequeños cambios queda así:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
</head>
<body>
<?php
$cadena1 = "aprender";
$cadena2 = "aprende";
$cadena3 = "ApRendEr A proGraMar.cOm";
//punto a.
echo str_pad($cadena1, (strlen($cadena1)+10), "*", STR_PAD_BOTH). "<br/>";
echo str_pad($cadena2, (strlen($cadena2)+10), "*", STR_PAD_BOTH). "<br/>";
echo "-----------------------------------------<br/>";
//punto b.
$tresLetrasSonIguales = true;
for ($i=0; $i < 3; $i++) {
$aux1 = substr($cadena1, $i, 1);
$aux2 = substr($cadena2, $i, 1);
if (strcmp($aux1, $aux2) == 0) {
echo "\"" . $aux1 . "\" es igual a \"" . $aux2 . "\".<br/>";
}else{
$tresLetrasSonIguales = false;
echo "\"" . $aux1 . "\" es diferente de \"" . $aux2 . "\".<br/>";
}
}
echo '<br/> Como resultado final podemos decir que las tres letras son: ';
if ($tresLetrasSonIguales == true) { echo 'iguales';} else {echo 'no iguales';}
echo "<br/>-----------------------------------------<br/>";
//punto c.
$tranosformada = strtolower($cadena3);
$resul = (strlen($tranosformada) % 2);
$aux = strlen($tranosformada);
if ($resul == 0) {
$longitud = 2*$aux;
echo "Resul: " . str_pad($tranosformada, $longitud,"*" , STR_PAD_BOTH);
}else{
$longitud = 2*$aux + 1;
echo "Resul: " . str_pad($tranosformada, ($longitud),"*" , STR_PAD_BOTH);
}
?>
</body>
</html>