Google
Web dns.bdat.net

Manipulación de cadenas

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