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>';

?>