PHP:¿Cómo agregar etiquetas p en un párrafo?

De Foros del Web

Ante todo decir que es muy sencillo ahora que lo pienso pero bueno para que esté en el foro y le pueda ayudar al alguien que al igual que yo esta haciendo un sistema de comentarios o cualquier otro proyecto y le fallaba el tema de los párrafos.

Me puse la pilas ya hace tiempo con PHP, y viendo que en ningún lado no hay nada de cómo hacer que se respeten las etiquetas.


Código HTML:

<p>Un párrafo</p>
en un textarea ( Bueno simplemente con la función) 

Código PHP:

nl2br

pero no es suficiente ya que no es limpia del todo, deja el texto flotando en el HTML


Me animé a realizar una función que con ayuda del nl2br que remplaza las nuevas líneas.


Código PHP:

n  

y te las remplaza por

Código HTML:

<br />

Ahora que lo pienso se podia a ver realizado con replace o una variante.

Ok, empecemos!

Código PHP:

function crear_parrafos($comentario) 
{
    $comentario=nl2br($comentario);
    $comentario=explode('<br />', $comentario);
 
    $comentario=implode("</p><p>", $comentario);
 
return $comentario;
}
 
$nick=$_POST['nick'];
$comentario=crear_parrafos($_POST['comentario']);
 
 
echo $nick."<br />";
echo "<p>".$comentario."</p>";  

Antes de todo el formulario HTML

Código HTML:

<form action="#"" method="post" >
 
	<label for="nick">Nombre: *</label> <input type="text" id="nick" name="nick" />
        <label for="comentario">Comentario: *</label><textarea  id="comentario" cols="4" rows="10" name="comentario"></textarea>
	<input type="submit" value="Enviar" />
</form>

Le pasamos 2 arrays

1. $_POST['nick']

2. $_POST['comentario']

Como vereis la función se llama crear_parrafos() que le paso un argumento que sería el array del POST del textarea, nos ayudamos de la función nl2br para saber donde están los saltos de linea, seguidamente empleamos la función explode que convierte todo el comentario en un array separando cada elemento del array a traves de


Código HTML:

Primera linea usando la función nl2br para que muestren los saltos de linea y seguidamente explode para que nos convierta en un array, primera linea
<br />
Segundo linea, segunda linea

Ahora podriamos hacer $comentario[0] que nos mostraría:

"Primera linea usando la función nl2br para que muestren los saltos de línea y seguidamente explode para que nos convierta en un array, primera línea"

ahora usamos la función implode que lo que hace es convertir nuestro array en una cadena pero con todos los elementos que tiene el array uniéndolos con una cadena (En este caso lo uniremos con las etiquetas </p>

. Y a la hora de mostrarlo pondremos las etiquetas <p> de inicio que no realiza implode y la etiqueta

del párrafo último del final.

--Nathan_1979 11 Set 2008

Este artículo es parte de las FAQs de PHP y el Manual de PHP.

Herramientas personales