Convertir retornos de carro en salto de línea en html
El lenguaje HTML no interpreta los retornos de carro introducidos en el texto. La forma de poner un salto de línea en HTML es con la etiqueta <br>.
Si queremos que al mostrar un texto respete los retornos de carro tendremos que o bien introducir el texto entre etiquetas <pre> o bien sustituir los retornos de carro por <br>, y para esto tenemos varias posbilidades:
Usar la función nl2br que devuelve el texto con los <br> introducidos ya en las posiciones de los retornos de carro.
Otra posbilidad es usar alguna de las funciones destinadas a sustituir un texto por otro en una cadena. Por ejemplo:
para textos tipo DOS:
$texto=str_replace ( "\r\n", "<br>", $texto);
para textos tipo UNIX:
$texto=str_replace ( "\n", "<br>", $texto);
Recordamos la diferencia entre los fines de línea de tipo DOS que es "\r\n" y los de tipo UNIX que es simplemente "\n".
Otra posibilidad sería dividir el texto en líneas distintas y después gestionar las líneas por separado. Esto viene ilustrado con el siguiente ejemplo:
<?php
echo '<head>
<title>'.$_SERVER[PHP_SELF].'</title>
</head>
<html>
<body>';
$texto='PHP es un lenguaje de programación
que reúme unas características
muy especiales. Tiene una curva de
aprendizaje muy equilibrada,
es decir lo básico se aprende con
gran rapidez.
Es flexible y potente y multiplataforma.
Y por si todo esto fuera poco,
también es LIBRE.';
echo $texto;
echo '<p>';
$textodividido=split("\n",$texto);
foreach ($textodividido AS $linea)
{
echo $linea;
echo '<br>';
}
echo '</body>
</html>';
?>