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