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.
- Indice de las FAQs: Conceptos, Configuración, Formularios, Manejo de Archivos, Integración con Bases de Datos, Sesiones, Extensiones y Librerías, Seguridad, Funciones, Clases y Objetos, Frameworks
- Recomendamos también: Guía Zend, Frameworks PHP, Aceleradores PHP
- Agregar al FAQ: PHP: Instrucciones para agregar una pregunta al FAQ de PHP
- Para preguntas sobre PHP: Foro de Php
