Foros del Web » Programando para Internet » PHP »

Expresión regular, en preg_replace

Estas en el tema de Expresión regular, en preg_replace en el foro de PHP en Foros del Web. Hola tengo un pequeño problema con el sintaxis de la expresión, lo que quiero intentar es buscar un link parecido a este src="imagenes/misc/Imagen con espacio.jpg" ...
  #1 (permalink)  
Antiguo 25/03/2009, 16:47
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 17 años, 4 meses
Puntos: 56
Expresión regular, en preg_replace

Hola tengo un pequeño problema con el sintaxis de la expresión, lo que quiero intentar es buscar un link parecido a este src="imagenes/misc/Imagen con espacio.jpg" /> y reemplazar los espacis con subguión (_) src="imagenes/misc/Imagen_con_espacio.jpg" />

La funcion del preg es esta para reemplazar
Código PHP:
function toSubimg($str){
return 
str_replace(" ","_",$str);

Ahora el problema es en la expresión que no me lo toma, haber si me dicen que hice mal. Gracias
Código PHP:
//Ejemplo string: src="imagenes/misc/Imagen con espacio.jpg" />
$t preg_replace_callback("/\src\=\"imagenes\/misc\/([^(=]+)\.\jpg\" \/\>/"'toSubimg'$t); 
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */
  #2 (permalink)  
Antiguo 25/03/2009, 19:54
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Respuesta: Expresión regular, en preg_replace

la expresión deberia ser algo asi

<img.*src="([^"]+).*\/>

ahora, no podes reemplazar los espacios en blanco antes de poner el src a la img???

<img src="carpeta/<?php echo str_replace(' ','_',$nombreImagen)?>" alt="" />

__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 25/03/2009, 21:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Expresión regular, en preg_replace

por cierto, lee el manual de PHP... por favor!

la funcion callback para preg_* solo obtiene un parámetro, que a su ves es un array()

el índice cero es toda la expresión, mientras que los demás índices se crean en relación de la capturas con paréntesis en tu expresión....

y así, es mejor que comprendas...

Código PHP:
function foo($match)
{
  
var_dump($match);
  
// $match[0] = candy
  // $match[1] = nd
}

preg_replace_callback('/^.*a(.)y$/''foo''candy'); 
¿porque hacías todo a ciegas??

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
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:57.