Foros del Web » Programando para Internet » PHP »

Analizar/y reemplazar un texto PHP/MySQL

Estas en el tema de Analizar/y reemplazar un texto PHP/MySQL en el foro de PHP en Foros del Web. Buenas, Tropiezo con un problema desde un tiempo y a ver si me podeis echar un cable... Tengo una base de datos con todas mis ...
  #1 (permalink)  
Antiguo 27/05/2013, 13:18
 
Fecha de Ingreso: mayo-2013
Mensajes: 3
Antigüedad: 11 años
Puntos: 0
Pregunta Analizar/y reemplazar un texto PHP/MySQL

Buenas,
Tropiezo con un problema desde un tiempo y a ver si me podeis echar un cable...

Tengo una base de datos con todas mis imagenes - ejemplo:

ID RUTA
--------------------------------
10001 img/img-1.jpg
10002 img/img-2.jpg
10003 img/img-3.jpg



Tengo textos con mis imagenes en formato [img="id"] - ejemplo:

Lorem ipsum dolor sit amet, consectetur [img="10002"] adipiscing elit. Praesent gravida egestas felis vitae faucibus. Nam vel nisi nec erat pretium ultrices. Etiam ornare posuere laoreet. [img="10001"] Sed nec pulvinar nisi. Nullam a nisl ut justo porttitor blandit. Sed sit amet sem ac purus iaculis ornare eget id orci. In nec elit vel quam pellentesque consequat. Proin bibendum dolor vitae dolor mattis ac consequat dui interdum.


Me gustaria que se reemplacen las id de las imagenes del texto por la ruta de mi base de datos.

para ello ya tengo una función pathFromId($id) que me permite encontrar la ruta a partir de una id pero no consigo analizar el texto y separar cada id en el texto y luego poner en su debido lugar la ruta obtenida con la función
  #2 (permalink)  
Antiguo 27/05/2013, 14:01
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Analizar/y reemplazar un texto PHP/MySQL

Tendrás que utilizar expresiones regulares con la función pregex o similar. Salu2
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 27/05/2013, 14:08
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 1 mes
Puntos: 2534
Respuesta: Analizar/y reemplazar un texto PHP/MySQL

Consulta el siguiente tema, te puede servir de guía.

http://www.forosdelweb.com/f18/extraer-cadena-1053596/
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 27/05/2013, 14:31
 
Fecha de Ingreso: mayo-2013
Mensajes: 3
Antigüedad: 11 años
Puntos: 0
Respuesta: Analizar/y reemplazar un texto PHP/MySQL

gracias por el link...

Pero no consigo hacer que mi función pathFromId() funcione con el preg_replace()
tengo esto:

Código PHP:
Ver original
  1. $from = array(
  2.    "/\[img=\"(.*?)\"\]/is"
  3. );
  4. $to = array(
  5.     "<img src=\"".pathFromId(."$1".)."\" />"
  6. );
  7. $text = preg_replace($from, $to, $text);
  #5 (permalink)  
Antiguo 27/05/2013, 14:49
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 1 mes
Puntos: 2534
Respuesta: Analizar/y reemplazar un texto PHP/MySQL

La función preg_replace() no funcionará como esperas, pues invocas la función pathFromId() para construir la cadena de reemplazo, sin embargo necesitas que se invoque al hacer el reemplazo, que es diferente.

Lo que necesitas es preg_replace_callback(), consulta el manual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 28/05/2013, 09:46
 
Fecha de Ingreso: mayo-2013
Mensajes: 3
Antigüedad: 11 años
Puntos: 0
Respuesta: Analizar/y reemplazar un texto PHP/MySQL

La función preg_replace_callback() es muy compleja y no consigo aplicarla en mi caso :$
Como podría hacer?
  #7 (permalink)  
Antiguo 28/05/2013, 09:50
 
Fecha de Ingreso: abril-2013
Ubicación: Lima
Mensajes: 83
Antigüedad: 11 años
Puntos: 1
Respuesta: Analizar/y reemplazar un texto PHP/MySQL

yo lo hago asi

Cita:
echo "<table border = '2' bordercolor='#006CB8' height='80'><tr><td width='100'><img src=Fotos/" . $rows['percod']. ".jpg width='110' height='110'></td></table>"
la columna percod es el nombre que toma la imagen por default y le agrego el .jpg para que jale la imagen como tal
  #8 (permalink)  
Antiguo 28/05/2013, 09:50
 
Fecha de Ingreso: abril-2013
Ubicación: Lima
Mensajes: 83
Antigüedad: 11 años
Puntos: 1
Respuesta: Analizar/y reemplazar un texto PHP/MySQL

en tu caso sería IDRUTA.. quitale el .JPG y tendrás resultados
  #9 (permalink)  
Antiguo 28/05/2013, 09:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 1 mes
Puntos: 2534
Respuesta: Analizar/y reemplazar un texto PHP/MySQL

Cita:
Iniciado por red_hunter3 Ver Mensaje
La función preg_replace_callback() es muy compleja y no consigo aplicarla en mi caso :$
Como podría hacer?
No es nada compleja, no le tengas miedo.

Mira este ejemplo:
Código PHP:
Ver original
  1. $text = 'Cras justo odio, dapibus ac facilisis in, egestas eget quam.';
  2. $text = preg_replace_callback('/([aeiou]+)/', function ($match) { return strtoupper($match[1]); }, $text);
  3.  
  4. echo $text;

En el ejemplo capturo únicamente las vocales y las convierto a mayúsculas.

Aprende cómo es el mecanismo para aplicarlo a tu problema, lo cual considero bastante sencillo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: Ninguno
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 13:18.