Foros del Web » Programando para Internet » PHP »

Poner <p> y </p> en los valores devueltos por una consulta a la base de datos

Estas en el tema de Poner <p> y </p> en los valores devueltos por una consulta a la base de datos en el foro de PHP en Foros del Web. Buenas. ¿Alguien sabe cómo poner <p> y </p> en los párrafos que tengo en una variable? No quiero <br> usando nl2br, me hace falta usar ...
  #1 (permalink)  
Antiguo 07/02/2006, 18:02
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.462
Antigüedad: 15 años, 4 meses
Puntos: 2100
Poner <p> y </p> en los valores devueltos por una consulta a la base de datos

Buenas.

¿Alguien sabe cómo poner <p> y </p> en los párrafos que tengo en una variable? No quiero <br> usando nl2br, me hace falta usar los párrafos (<p>).
He estado mirando pero no encuentro nada.

Un saludo y gracias.
  #2 (permalink)  
Antiguo 07/02/2006, 19:38
 
Fecha de Ingreso: diciembre-2005
Mensajes: 122
Antigüedad: 12 años
Puntos: 0
usa preg_replace(), intenta:

preg_replace( "/(.*)\n$/", "<p>\\1</p>" );

no aseguro que funcione puesto que lo acabo de idear.
  #3 (permalink)  
Antiguo 08/02/2006, 09:49
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.462
Antigüedad: 15 años, 4 meses
Puntos: 2100
No me funciona plus_ultra, he intentado cambiar algo, pero nada, no hays <p>eces.
¿Tienes alguna otra idea?
  #4 (permalink)  
Antiguo 08/02/2006, 10:02
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
De acuerdo

mmm yo en particular lo resolveria con la funcion str_replace()puesto con esta funcion puedes buscar <br> en tu cadena original y sustituirla por <p>
  #5 (permalink)  
Antiguo 08/02/2006, 10:24
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.462
Antigüedad: 15 años, 4 meses
Puntos: 2100
El caso es que, no hay <br>'s en la cadena, y, además, si los hubiera no tendrían porqué ser párrafos, ya que en los párrafos también hay saltos de linea.

Es decir, no quiero convertir saltos de linea en párrafos, si no ponerle a los bloques de texto (¿tal vez separados entre si por dos saltos de linea?) <p> y </p>.
  #6 (permalink)  
Antiguo 08/02/2006, 10:27
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 15 años, 10 meses
Puntos: 771
Hola BoNeZ

No entiendo bien tu duda Si lo que quieres es crear párrafos, supongo que sería
Código:
echo '<p>'.$tuvariable.'</p>'
¿O lo he entendido yo mal?

Saludos, :Adios:
  #7 (permalink)  
Antiguo 08/02/2006, 10:32
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 12 años, 9 meses
Puntos: 17
En nl2br dan un ejemplo simple

Código PHP:
<?php
function nl2p($text) {
  return 
"<p>" str_replace("\n""</p><p>"$text) . "</p>";
}
?>
  #8 (permalink)  
Antiguo 08/02/2006, 10:40
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.462
Antigüedad: 15 años, 4 meses
Puntos: 2100
JavierB, quiero poner entre <p> y </p> los párrafos que hay en una variable, pero automaticamente.

Es decir...
$texto="Hola, soy Edu:

Feliz Navidad";

Y que esto resulte:
<p>Hola soy Edu:</p>
<p>Feliz Navidad</p>

Seppo, probando esa función, lo que hace es simplemente cambiar los br por <p>, y por ejemplo, con la variable de ejemplo de arriba, saldría algo así:

<p>Hola siy Edu:</p>
<p></p>
<p>Feliz Navidad</p>

Que es como el nl2br, pero en vez de <br> hace <p>'s
  #9 (permalink)  
Antiguo 08/02/2006, 10:57
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.462
Antigüedad: 15 años, 4 meses
Puntos: 2100
Encontré una función (en donde Seppo encontró la que puso él) que hace lo que quiero. Además se puede poner una clase al párrafo si se quiere.

Código PHP:
function nl2p($str,$addtag='') {
   return 
str_replace('<p'.$addtag.'></p>''''<p'.$addtag.'>' preg_replace('#\n|\r#''</p>$0<p'.$addtag.'>'$str) . '</p>');

Gracias a todos, un saludo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:24.