Foros del Web » Programando para Internet » PHP »

Expresión Regular

Estas en el tema de Expresión Regular en el foro de PHP en Foros del Web. Hola, Necesito sustituir los valores de un "width" y un "height" de una variable que es una cadena de texto y me estoy volviendo loco ...
  #1 (permalink)  
Antiguo 03/09/2007, 11:07
 
Fecha de Ingreso: agosto-2007
Mensajes: 5
Antigüedad: 16 años, 8 meses
Puntos: 0
Expresión Regular

Hola,

Necesito sustituir los valores de un "width" y un "height" de una variable que es una cadena de texto y me estoy volviendo loco con las expresiones regulares...

Hay que tener en cuenta que el width y el height pueden estar puestos de varias formas dentro de la cadena: Por ejemplo:
- width="xxx" height="yyy"
- Height='yyy' Width='xxx'
- style="height: yyypx; width= xxxpx"

Alguien podría ayudarme, por favor?

Muchas gracias!
  #2 (permalink)  
Antiguo 03/09/2007, 11:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Expresión Regular

Porque no usas str_replace?

Código PHP:
$width 100;
$height 50;
$texto "width=\"xxx\" height=\"yyy\"";
$var str_replace"xxx"$width$texto );
$var str_replace"yyy"$height$var );

echo 
$var
Saludos.
  #3 (permalink)  
Antiguo 03/09/2007, 11:46
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Re: Expresión Regular

jeje con expresion regular yo lo hize de la siguiente manera

Código PHP:
<?
$size 
"100px";
$cadena "height=300px hola mundo width=200px";

$regex[]  ="/[H|h]eight=[0-9]{0,3}px/";
$regex[]  ="/[W|w]idth=[0-9]{0,3}px/";

$replacements[] = " height={$size} ";
$replacements[] = " width={$size} ";

$results preg_replace($regex$replacements$cadena);
var_dump($results);
?>
Saludillos.
  #4 (permalink)  
Antiguo 03/09/2007, 13:38
 
Fecha de Ingreso: agosto-2007
Mensajes: 5
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Expresión Regular

Cita:
Iniciado por mauled Ver Mensaje
Código PHP:
<?
$size 
"100px";
$cadena "height=300px hola mundo width=200px";

$regex[]  ="/[H|h]eight=[0-9]{0,3}px/";
$regex[]  ="/[W|w]idth=[0-9]{0,3}px/";

$replacements[] = " height={$size} ";
$replacements[] = " width={$size} ";

$results preg_replace($regex$replacements$cadena);
var_dump($results);
?>
Muchas gracias!!! Esto funciona.. pero si la cadena fuera:
$cadena = 'height="300px" hola mundo width=200px';

ya no funciona... jarl!!!
  #5 (permalink)  
Antiguo 03/09/2007, 14:27
 
Fecha de Ingreso: agosto-2007
Mensajes: 5
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Expresión Regular

Al final lo he solucionaod así:

Código PHP:
$regex[]  ="/[H|h]eight=\"?\'?[0-9]{0,3}\"?\'?/"
    
$regex[]  ="/[W|w]idth=\"?\'?[0-9]{0,3}\"?\'?/"
    
$regex[]  ="/[H|h]eight: ?[0-9]{0,3}(px)?/"
    
$regex[]  ="/[W|w]idth: ?[0-9]{0,3}(px)?/"
    
    
$replacements[] = " height='{$alcada}' "
    
$replacements[] = " width='{$amplada_max}' "
    
$replacements[] = " height:".$alcada."px"
    
$replacements[] = " width:".$amplada_max."px"
    
    
$amb_cursiva_sortida preg_replace($regex$replacements$cadena); 
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 11:58.