Foros del Web » Programando para Internet » PHP »

Según encuentre enlace o no

Estas en el tema de Según encuentre enlace o no en el foro de PHP en Foros del Web. Tengo en un foro que si en el texto encuentra una determinada palabra mediante un script a esta palabra se le dá un formato definido ...
  #1 (permalink)  
Antiguo 25/04/2011, 15:27
Avatar de ESNOLA  
Fecha de Ingreso: octubre-2006
Mensajes: 188
Antigüedad: 17 años, 6 meses
Puntos: 20
Según encuentre enlace o no

Tengo en un foro que si en el texto encuentra una determinada palabra mediante un script a esta palabra se le dá un formato definido de color, etc..
mas o menos de esta manera:
Código PHP:
Ver original
  1. $enlace = '<span class="'.$class.'" title="'.$alt.'"
  2. alt="'.$alt.'"><font color="'.$row['color'].'">' .$row['word'].'
  3. </font> </span>';
El problema viene cuando esa palabra aparece dentro de un enlace, porque entonces se rompe el formato del enlace y aparece algo así:
Cita:
<a href=http://www.enlace.com/ <span class='word' title="corre" alt="corre"><font color="verde">palabra</font> </span>el_resto_del_enlace</a>
¿como podría hacer para que en los enlaces no hiciese la digamos "transformación".

Ahora mismo lo tengo de forma que si encuentra un enlace en el texto directamente no haga la "transformación" pero no es eso lo que busco.

¿Alguna idea?
  #2 (permalink)  
Antiguo 25/04/2011, 15:47
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Según encuentre enlace o no

de verdad que esta difícil lo que quieres hacer, yo lo que haría es eliminar todos los enlaces de la cadena recordando su posición con un identificador por ejemplo "link#" en el texto por ejemplo

palabra clave palabra <a enlace> clave palabra palabra <a clave enlace> clave palabra

he marcado en rojo los enlaces y en verde las palabras claves, como veras hay una palabra clave en el segundo enlace, entonces tomo ambos enlaces y los cambio por el identificador:

palabra clave palabra LINK1 clave palabra palabra LINK2 clave palabra

guardando cada uno en un array

$link[1]="<a enlace>"
$link[2]="<a clave enlace>"

luego marco las palabras claves con esa función que tienes:

palabra clave palabra LINK1 clave palabra palabra LINK2 clave palabra

por ultimo reemplazo los links por lo que erán:

palabra clave palabra <a enlace> clave palabra palabra <a clave enlace> clave palabra

como verás la palabra "clave" del enlace no se ha cambiado :)

espero que se haya entendido por que me demoró harto XD
  #3 (permalink)  
Antiguo 25/04/2011, 16:07
Avatar de ESNOLA  
Fecha de Ingreso: octubre-2006
Mensajes: 188
Antigüedad: 17 años, 6 meses
Puntos: 20
Respuesta: Según encuentre enlace o no

Vale, la idea está genial, pero ¿como hago para identificar cada enlace, meterlo en el array y luego devolverlo a su sitio?
Saludos

Etiquetas: encuentre, enlace
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:09.