Buenas, los apartados a) y b) están correctos
En el apartado c) habría alguna cuestión a comentar
Supongamos que la cadena tiene longitud 3 (impar)
Al ejecutar $cad3min,$cad3size+($cad3size+1)/2 tendríamos 3+4/2 = 3+2 = 5 asteriscos que se reparten 2 a un lado y 3 a otro.
Para rellenar con 3 y 3 asteriscos podríamos usar
echo str_pad($cad3min,$cad3size+1+($cad3size+1)/2,'*',STR_PAD_BOTH).'<br/>';
Con esto realmente a cada lado de la cadena se muestra la mitad de la mitad de los asteriscos.
Para mostrar a cada lado la mitad de los asteriscos (la mitad de la longitud de la palabra) podríamos usar este código:
<!DOCTYPE html>
<html>
<head>
<title>Ejercicio tema CU00829B aprenderaprogramar.com</title>
<meta charset="utf-8">
</head>
<body>
<?php
echo '<h4>Ejercicio a)<h4/>';
$cadena1='aprender';
$cadena2='aprende';
echo 'La cadena 1 es '.$cadena1.'<br/>';
echo 'La cadena 2 es '.$cadena2.'<br/>';
echo '<p>'.str_pad($cadena1, (strlen($cadena1)+10) , "*", STR_PAD_BOTH).'</p>';
echo '<p>'.str_pad($cadena2, (strlen($cadena2)+10) , "*", STR_PAD_BOTH).'</p>';
echo '<hr>';
echo '<h4>Ejercicio b)<h4/>';
echo 'Comparación de los tres primeros caracteres de las dos cadenas<br/>';
if (strncmp($cadena1, $cadena2,3) == 0) {
echo 'Según strncmp las dos cadenas son iguales';
}else {
echo 'Según strncmp las dos cadenas NO son iguales';
}
echo '<hr>';
echo '<h4>Ejercicio c)<h4/>';
$cadena3='ApRendEr A proGraMar.cOma';
echo 'La cadena 3 es '.$cadena3.'<br/>';
$cad3min=strtolower($cadena3);//A minúsculas
$cad3size=strlen($cad3min);//Tamaño de la cadena
echo 'La cadena 3 tiene longitud '.$cad3size.'<br/>';
if($cad3size%2==0){
echo str_pad($cad3min,2*$cad3size,'*',STR_PAD_BOTH).'<br/>';
}else{
echo str_pad($cad3min,2*$cad3size+1,'*',STR_PAD_BOTH).'<br/>';
}
echo '<hr>';
?>
</body>
</html>
Salu2