Foros del Web » Programando para Internet » PHP »

Sustitucion de determinadas palabras por hipervinculos

Estas en el tema de Sustitucion de determinadas palabras por hipervinculos en el foro de PHP en Foros del Web. Hola a todos, soy nuevo en este mundo del php. Estoy haciendo mis pinitos, pero todavía me cuesta hacer algunas cosas, supongo que esto será ...
  #1 (permalink)  
Antiguo 17/03/2009, 06:25
 
Fecha de Ingreso: julio-2008
Mensajes: 84
Antigüedad: 15 años, 9 meses
Puntos: 0
Sustitucion de determinadas palabras por hipervinculos

Hola a todos, soy nuevo en este mundo del php. Estoy haciendo mis pinitos, pero todavía me cuesta hacer algunas cosas, supongo que esto será una tontería pero estoy bloqueado:

Lo que quiero hacer: Un formulario en el que se introduzca un texto y devuelva el mismo texto, pero habiendo reemplazado determinadas palabras clave por hipervinculos (y así facilitar al lector saber de que estamos hablando).
Para esto lo que hago es meter la palabra buscada en la URL de un motor de busqueda externo

Problemas:
1) Las tildes ¿Como puedo hacer que la sean la misma cadena "Relámpago" y "Relampago"? Teniendo en cuenta que el texto quiero devolverlo con las mismas tildes que me lo dieron.

2) Cadenas contenidas dentro de otras. En mi base de datos tenemos la cadena "Relámpago" y la cadena "Relámpago Rístico" ¿Cómo consigo que el texto "Relámpago Rístico" se reemplaze correctamente y no 2 veces (uno por la parte de "Relámpago Rístico" y luego, dentro de la URL que acabamos de crear por "Relámpago")?

3) Más consejos o sugerencias.

Lo que he hecho: [1.Conectar a la base de datos; 2.Seleccionar la primera palabra a reemplazar; 3.Buscar esa palabra en el texto y reemplazarla; 4.Repetir puntos 2 y 3; 5.devolver el texto]


$texto = $_POST['texto'];

//acceder a la base de datos y crear un array con los resultados


//reemplazar los nombres por hipervinculos
foreach ($datos as $value)
{$valuetrim = trim ($value);
$url = [Creación de la URL, que no puedo publicar por el anti-spam];
$texto = eregi_replace ($value, $url, $texto);

//imprimir el resultado

MUCHAS GRACIAS
  #2 (permalink)  
Antiguo 17/03/2009, 06:29
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: Sustitucion de determinadas palabras por hipervinculos

Hola
Mira para empezar te recomiendo que estudies un poco sobre la funcion str_replace(), y tambien puedes trabajar con expresiones regulares con ereg_replace(), yo te recomendaia estas para el puntapie inicial

saludos
  #3 (permalink)  
Antiguo 17/03/2009, 06:40
 
Fecha de Ingreso: julio-2008
Mensajes: 84
Antigüedad: 15 años, 9 meses
Puntos: 0
Busqueda Respuesta: Sustitucion de determinadas palabras por hipervinculos

Hola, antes de nada: ¡muchas gracias por tu respuesta!

Efectivamente, estoy usando eregi_replace para hacer esto

Cita:
foreach ($datos as $value)
{$valuetrim = trim ($value);
$url = [Creación de la URL, que no puedo publicar por el anti-spam];
$texto = eregi_replace ($value, $url, $texto);
Los problemas que me surgen son los que he mencionado
1) Las tildes
2) términos que incluyen otros términos

He mirado las funciones que me dices en php punto net y no veo como solucionar ninguno de estos problemas ¿Puedes decirme donde puedo encontrar más información sobre ellas para solucionar mis problemas?

MIL GRACIAS
  #4 (permalink)  
Antiguo 17/03/2009, 07:03
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: Sustitucion de determinadas palabras por hipervinculos

Hola
Y mira si ya conoces la funcion mejor, lo unico que queda es hacer una expresion regular que te detecte lo que quieres, yo personalmente sacaria las tildes (realmente las odio mucho...) dan muchos dolores de cabeza, pero bueno si las quieres usar no queda otra que usar regexp, hay una buena pagina en ingles pero no recuerdo bien como era pon en google regexp y te va a salir, lo unico que me acuerdo era que terminaba en .info el sitio

suerte y saludos
  #5 (permalink)  
Antiguo 18/03/2009, 07:13
 
Fecha de Ingreso: julio-2008
Mensajes: 84
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Sustitucion de determinadas palabras por hipervinculos

¡GRACIAS ADELL!

He encontrado la página que me dices regular-expressions.info y es muy buena y completa. (Yo no sabía lo que es un regex). Con esto he solucionado mi problema con las tildes.

Pero todavía no he conseguido solucionar mi problema con los reemplazos dobles

En mi base de datos tenemos la cadena "Relámpago" y la cadena "Relámpago Rístico" ¿Cómo consigo que el texto "Relámpago Rístico" se reemplaze correctamente y no 2 veces (uno por la parte de "Relámpago Rístico" y luego, dentro de la URL que acabamos de crear por "Relámpago")?

Por ejemplo:
La cadena Relámpago Rístico se sustituirá por

COMIENZO URL search_string=Relámpago+Rístico FIN URL

Cuando la báse de datos haga los reemplazos de la palabra RELÁMPAGO (con un loop foreach) ¿Como evito que lo sustituya de nuevo?

Mil gracias!!
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.