Hola. Buenos días.
Estoy aprendiendo a programar en php y me he topado con un ejercicio que por más que lo intento no logro encontrarle la solución y seguro que fallo el alguna boberia de logica.
El ejercicio manda decir si en las lineas de un fichero hay o no caracteres repetidos, es decir la salida por pantalla debería de ser esta:
La línea “hola” NO tiene caracteres repetidos.
La línea “aca aca aca” SI tiene caracteres repetidos.
La línea “alla alla alla” SI tiene caracteres repetidos.
La línea “fichero” NO tiene caracteres repetidos.
Yo tengo esto programado:
<HTML>
<HEAD>
<TITLE>Repetición de Caracteres</TITLE>
</HEAD>
<BODY>
<?php
define("FICH_DATOS", 'FicheroEj3.txt');
$fich = @fopen(FICH_DATOS, 'r') or die("ERROR al abrir el fichero");
$sRepetidos=0;
while(!feof($fich)){
$linea=fgets($fich);
for($i=0;$i<strlen($linea);$i++){
for($j=$i+1;$j<strlen($linea);$j++){
if($linea[$i]==$linea[$j]){
$sRepetidos++;
}
}
}
if($sRepetidos!=0){
echo "La linea ".$linea." SI tiene caracteres repetidos <br>";
}else if($sRepetidos==0){
echo "La linea ".$linea." NO tiene caracteres repetidos <br>";
}
}
fclose ($fich);
?>
</BODY>
</HTML>
Pero me da error ya que la ultima linea me sale que SI tiene caracteres repetidos.
¿Alguna ayuda para este novato? Gracias de antemano.