Foros del Web » Programando para Internet » PHP »

modificar texto de BD en un link ???!!

Estas en el tema de modificar texto de BD en un link ???!! en el foro de PHP en Foros del Web. Hola, tengo un problema, tengo una pagina donde los usuario ( mediante un form ) envian comentarios a mi web, pero claro, si alguien envia ...
  #1 (permalink)  
Antiguo 08/07/2009, 15:10
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 16 años, 6 meses
Puntos: 4
modificar texto de BD en un link ???!!

Hola, tengo un problema, tengo una pagina donde los usuario ( mediante un form ) envian comentarios a mi web, pero claro, si alguien envia un enlace, ( es decir: envia un comentario tipo : mira esta web http://www.google.es ) cuando hago mostrar este texto recuperado de la BD el problema es que me lo muestra todo como cadena de texto, incluso el "http://www.google.es " he visto por ahy que hay que aplicar este tipo de codigo:


Yo el codigo para visualizar los datos de la BD es el siguiente:

<?php echo nl2br($row_reclamaciones['comentario']);

?>

y lo que he visto que tengo que aplicar el lo siguiente:


echo ereg_replace("(^| )(www([.]?[a-zA-Z0-9_/-])*)", "\\1<a href=\"http://\\2\" target='_new'>\\2</a>", $registro['texto']);



el problema que tengo esque no se bien como adecuar las 2 funciones, por un lado el nl2br ( que es para mantener los espacios y los saltos de linea ) y el ereg_replace ( que es para generar vinculos a cadenas de textos que contienes http://, etc.... )

alguna sugerencia ????
  #2 (permalink)  
Antiguo 08/07/2009, 15:59
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: modificar texto de BD en un link ???!!

Código PHP:
echo nl2br(ereg_replace("(^| )(www([.]?[a-zA-Z0-9_/-])*)""\\1<a href=\"http://\\2\" target='_new'>\\2</a>"$registro['texto'])); 
  #3 (permalink)  
Antiguo 08/07/2009, 16:35
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 16 años, 6 meses
Puntos: 4
Respuesta: modificar texto de BD en un link ???!!

Lo he intentado asi, pero salen errores:

<?php echo nl2br(ereg_replace("(^| )(www([.]?[a-zA-Z0-9_/-])*)", "\\1<a href=\"http://\\2\" target='_new'>\\2</a>"),($row_reclamaciones['comentario']));?>
  #4 (permalink)  
Antiguo 08/07/2009, 18:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: modificar texto de BD en un link ???!!

¿Que errores? Lee con atencion lo siguiente: http://www.forosdelweb.com/f18/como-...1/#post2414268
  #5 (permalink)  
Antiguo 09/07/2009, 07:43
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: modificar texto de BD en un link ???!!

Estas sacando el valor a verificar fuera del ereg_replace hazlo asi

Código PHP:
<?php echo nl2br(ereg_replace("(^| )(www([.]?[a-zA-Z0-9_/-])*)""\\1<a href=\"http://\\2\" target='_new'>\\2</a>",$row_reclamaciones['comentario']));?>
  #6 (permalink)  
Antiguo 09/07/2009, 17:07
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 16 años, 6 meses
Puntos: 4
precisamente es asi como lo habia modificado yo, pero me sale este error:

Wrong parameter count for ereg_replace() in C:\wamp\www\miweb\miweb2\reclamaciones.php on line 238

He generado ese codigo segun los manuales de PHP, el cual he podido generar el enlace de un texto especifico, hasta aqui perfecto, pero el problema es que me tiene que generar el enlace segun el texto que tengo en mi base de datos de la tabla "reclamaciones" (es decir un apartado donde los usuarios ponen sus sugerencias, dudas, etc....).

<?php

$cometario="www.comentarios";
$text = ereg_replace("(^| )(www([.]?[a-zA-Z0-9_/-])*)", "\\1<a href=\"http://\\2\">\\2</a>",$cometario);


echo $text , nl2br($row_reclamaciones['comentario']);

?>

El problema es que yo quiero que me ejecute el ereg_replace desde el texto que tengo en $row_reclamaciones['comentario'], lo he provado asi, pero:

<?php

$cometario="www.comentarios";
$text = ereg_replace("(^| )(www([.]?[a-zA-Z0-9_/-])*)", "\\1<a href=\"http://\\2\">\\2</a>", $row_reclamaciones['comentario']);


echo $text , nl2br($row_reclamaciones['comentario']);

?>



provandolo de esta manera, no me genera ningun error, pero tampoco me ejecuta el script, es decir, el nl2br si me lo aplica bien, pero el ereg_replace no me lo aplica.


Alguna sugerencia ??????????

Ya esta solucinado, gracias de odos modos.

por si algien lo necesita la es:

<?php
$contenido=$row_reclamaciones['comentario'];

$text = ereg_replace("(^| )(http://www([.]?[a-zA-Z0-9_/-])*)", "\\1<a href=\"http://\\2\">\\2</a>",$contenido);


echo $text , nl2br($row_reclamaciones['comentario']);

?>

Última edición por GatorV; 15/07/2009 a las 14:26
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 15:00.