Foros del Web » Programando para Internet » PHP »

Reemplazar cada [img] por una imagen distinta

Estas en el tema de Reemplazar cada [img] por una imagen distinta en el foro de PHP en Foros del Web. Lo que pasa es que yo tengo en mi base de datos el contenido y para cada imagen que mostraba colocaba [img=X].. Ejm: este es ...
  #1 (permalink)  
Antiguo 08/07/2012, 13:34
 
Fecha de Ingreso: febrero-2011
Mensajes: 233
Antigüedad: 13 años, 2 meses
Puntos: 4
Reemplazar cada [img] por una imagen distinta

Lo que pasa es que yo tengo en mi base de datos el contenido y para cada imagen que mostraba colocaba [img=X]..

Ejm:

este es un artículo
[img=1]
otro texto
[img=2]

... para mostrar hacia un replace()..
Código PHP:
Ver original
  1. str_replace("[img=1]", '<img src="directorio/1.jpg"', $contenido);

hasta lo metía en un for por la cantidad de las imágenes (para no estar colocando un str_replace() para cada imagen)

Ahora quiero:

este es un artículo
[img]
otro texto
[img]

quisiera saber cómo puedo hacer para que cada [img] que se encuentre sea cambiado por <img src="directorio/X.jpg"> y en orden ya que yo guardo mis imagenes por números..

Muestro:

este es un artículo
[img]
otro texto
[img]

Al reemplazar

Código HTML:
Ver original
  1. este es un artículo
  2. <img src="directorio/1.jpg" />
  3. otro texto
  4. <img src="directorio/2.jpg" />


...gracias
  #2 (permalink)  
Antiguo 10/07/2012, 11:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Reemplazar cada [img] por una imagen distinta

Puedes usar preg_replace_callback con una expresión regular y un Closure:
Código PHP:
Ver original
  1. $counter = 0;
  2. $texto = "Todas las p de este archivo se deben de cambiar por números p p p p p";
  3. $texto = preg_replace_callback('/p/', function ($matches) use (&$counter) {
  4.        return ++$counter;
  5. }, $texto);
  6. echo $texto;

Saludos.

Etiquetas: cada, distinta, imagenes, img, reemplazar
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 01:17.