Foros del Web » Programando para Internet » PHP »

Problema cambiando el tamaño de imagenes

Estas en el tema de Problema cambiando el tamaño de imagenes en el foro de PHP en Foros del Web. Hola a todos, este es mi codigo: Código PHP: $texto  =  $_POST [ 'id1' ];        preg_match_all ( '/\[img=([^\]]+)\]/is' ,  $texto ,  $matches );          ...
  #1 (permalink)  
Antiguo 24/03/2010, 14:03
Avatar de manumaf  
Fecha de Ingreso: mayo-2007
Ubicación: Argentina
Mensajes: 854
Antigüedad: 16 años, 11 meses
Puntos: 6
Problema cambiando el tamaño de imagenes

Hola a todos, este es mi codigo:

Código PHP:
$texto $_POST['id1'];

      
preg_match_all('/\[img=([^\]]+)\]/is'$texto$matches);
        
      
$cantidad count($matches[1]);
      
$numero 0;
      while (
$numero $cantidad) {      
      
$url $matches[1][$numero];
      
$numero++;
      
$size getimagesize($url);      
     
$tamano 'width="'.$size[0].'"';
           }
function 
bbcode2html($cadena){

  
$bbcode[] = '/\[img=(?:"|\')?(.*?)(?:"|\')?\]/i';       $html[] = '<img src="$1" '.$tamano.' />';     

$cadena preg_replace($bbcode,$html,$cadena);
    return 
$cadena;
}
$transf bbcode2html($texto);

echo 
$transf
En la variable tamaño se guarda el ancho de la imagen osea queda asi: width="1000"

El codigo funciona bien, el problema es cuando quiero colocar la varable dentro de la funcion por que no me la lee. Alguien sabe por que no me le la variable adentro de la funcion?
  #2 (permalink)  
Antiguo 24/03/2010, 14:32
Avatar de zeuslife  
Fecha de Ingreso: enero-2008
Ubicación: Madrid
Mensajes: 533
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: Problema cambiando el tamaño de imagenes

No se si el error será ese, pero la variable $texto no la introduces en ningun momento en tu función
__________________
Neversyn Software e Ingeniería
  #3 (permalink)  
Antiguo 24/03/2010, 14:49
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: Problema cambiando el tamaño de imagenes

Veo que en la función dejaste una variable por fuera: $tamano. O la incluyes con un global o la metes directo dentro de la función.
  #4 (permalink)  
Antiguo 24/03/2010, 15:36
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: Problema cambiando el tamaño de imagenes

Aparte del hecho que la tienes dentro de un while() y se va a sobreescribir en cada vuelta de tu while.
  #5 (permalink)  
Antiguo 24/03/2010, 19:19
Avatar de manumaf  
Fecha de Ingreso: mayo-2007
Ubicación: Argentina
Mensajes: 854
Antigüedad: 16 años, 11 meses
Puntos: 6
Cambiar tamaño de imagenes

Hola a todos, este es mi codigo

Código PHP:

$texto 
"[img=http://i184.photobucket.com/albums/x79/pixvirtual/im/137/imagenes_de_flores_GMhmS.gif]
[img=http://www.zylestt.com/www/imagenes/cabezera_zylestt.jpg]
[img=http://www.cambio-climatico.com/wp-content/photos/perito_moreno_01.jpg]"
;

    
preg_match_all('/\[img=([^\]]+)\]/is'$texto$matches);
      
      
      
$cantidad count($matches[1]);
      
$numero 0;
     while (
$numero $cantidad) {
      
      
$url $matches[1][$numero];
      
$numero++;
      
$size getimagesize($url);
      
     
$tamano 'width="'.$size[0].'"';
     echo 
$tamano;
     
      
$exprecion '/\[img=(?:"|\')?(.*?)(?:"|\')?\]/is';
       
$htmlimagen '<img src="$1" '.$tamano.' />';     
       
$txt preg_replace($exprecion,$htmlimagen,$texto);
       } 

Lo que quiero lograr es que le coloque el width a cada imagen (esto es por ahora luego le quiero hacer una estructura de control para que la imagenes no pasen de un determinado ancho).
El problema es que todas la imagenes toman el ancho de la ultima imagen que procesa el bucle y yo quiero que cada imagen tome su propio ancho, como podria hacer?
  #6 (permalink)  
Antiguo 24/03/2010, 19:48
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Cambiar tamaño de imagenes

Busca en el foro, hay varios ejemplos de como hacer que las imagenes se puedan redimensionar a un tamaño especifico.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 24/03/2010, 19:58
Avatar de manumaf  
Fecha de Ingreso: mayo-2007
Ubicación: Argentina
Mensajes: 854
Antigüedad: 16 años, 11 meses
Puntos: 6
Respuesta: Cambiar tamaño de imagenes

Se que hay varias formas de redimencionar una imagen, pero lo tengo que hacer asi por que luego le coloco un if y si la imagen es mayor a 1000px la reduzco y si es menor la dejo como esta
  #8 (permalink)  
Antiguo 24/03/2010, 20:00
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Cambiar tamaño de imagenes

Ok, no te estoy diciendo que cambies la forma como lo haces, si buscas en el foro vas a ver varios mensajes que indican como hacer para que la imagen tome un tamaño conforme a su tamaño y no se distorcione. Tomas esa información y lo modificas a tu código.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 25/03/2010, 09:39
Avatar de manumaf  
Fecha de Ingreso: mayo-2007
Ubicación: Argentina
Mensajes: 854
Antigüedad: 16 años, 11 meses
Puntos: 6
Las imagenes me toman el mismo tamaño

Hola, este es mi codigo:
Código PHP:
$texto "[img=img1.jpg]
[img=img2.jpg]
[img=img3.jpg]"
;


  
preg_match_all('/\[img=([^\]]+)\]/is'$texto$matches);
            
      
$cantidad count($matches[1]);
      
$numero 0;
     while (
$numero $cantidad) {
      
      
$url $matches[1][$numero];
      
$numero++;
      
$size getimagesize($url);
      
      
      if(
$size[0] > 1000) {
     
$tamano 'width="950"';
     }else {
     
$tamano 'width="'.$size[0].'"';
     }
     
      
$exprecion '/\[img=(?:"|\')?(.*?)(?:"|\')?\]/is';
       
$htmlimagen '<img src="$1" '.$tamano.' />';     
       
$txt preg_replace($exprecion,$htmlimagen,$texto);
       } 
El objetivo es que cuando pase el codigo de bbcode a html las imagenes que tienen un ancho mayor a 1000px pasen a ser de 950px. El problema es que todas las imagenes me toman el tamaño de la ultima imagen, que esta mal?
  #10 (permalink)  
Antiguo 25/03/2010, 10:36
Avatar de Anastasiaphp  
Fecha de Ingreso: junio-2006
Ubicación: El patio de mi casa
Mensajes: 196
Antigüedad: 17 años, 10 meses
Puntos: 3
Respuesta: Las imagenes me toman el mismo tamaño

Prueba a cambiar de orden las comillas en la línea:
$tamano = 'width="950"';
Pon: $tamano = "width='950'";

Me estaba fijando ahora, que más abajo te pasa igual, yo creo que te va a dar problemas si utlizas comillas dobles dentro de comillas simples, cámbialo a ver.

Etiquetas: imagenes, tamaño, cambios
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:44.