Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/04/2010, 19:42
calamarjoe
 
Fecha de Ingreso: abril-2010
Mensajes: 10
Antigüedad: 14 años
Puntos: 0
Pierdo variables usando una clase dentro de otra

Buenos días,

Estoy empollándome esto de las clases en PHP y por lo visto se me ha escapado algo. Tengo dos clases, una con una función que me genera una cadena de texto y otra clase con una función que busca una cadena de texto en un texto más grande y la sustituye por la cadena generada por la primera clase.

El problema está en que todo funciona correctamente salvo porque las variables por las que está formada la primera cadena no aparecen. Se quedan en blanco.

El archivo es el siguiente:

Código PHP:
<?php

class Flickr {

    private 
$apiKey 'c933e0d66a6695d005d660392bc496f2';

    public function 
img($id)
    {
        
$url 'http://www.flickr.com/services/rest/?api_key=' $this->apiKey '&format=php_serial&method=flickr.photos.getInfo&photo_id=' $id;

        
$resultado file_get_contents($url);
        
$resultado unserialize($resultado);
        
$foto $resultado[photo];

        
$foto_url 'http://farm' $foto[farm] . '.static.flickr.com/' $foto[server] . '/' $foto[id] . '_' $foto[secret] . $tam '.jpg';

        
$foto '<a href="' $foto[urls][url][0][_content] . '"><img src="' $foto_url '" alt="' $foto[title][_content] . '" /></a>';

        return 
$foto;
    }

}

$flickr = new Flickr();



class 
BBcode {

    function 
__construct(&$flickr)
    {
        
$this->flickr =& $flickr
    }

    function 
procesar($texto){

        
$a "/\[img\](.*?)\[\/img\]/is";

        
$b "$1";
        
$b $this->flickr->img($b);

        
$texto preg_replace($a$b$texto);

        return 
$texto;
    }
}

$texto  'Imagen 1:<br />';
$texto .= '[img]4398563145[/img]<br />';
$texto .= 'Imagen 2:<br />';
$texto .= '[img]4334520973[/img]';

echo 
'<br /><br />';

$bbcode = new BBcode($flickr);

echo 
$bbcode->procesar($texto);

?>
Y esto me devuelve lo siguiente:

Código HTML:
Imagen 1:<br /><a href=""><img src="http://farm.static.flickr.com//_.jpg" alt="" /></a><br />Imagen 2:<br /><a href=""><img src="http://farm.static.flickr.com//_.jpg" alt="" /></a> 
A ver si alguien sabe qué es lo que he hecho mal y puede echarme un cable.

Un saludo.

Última edición por calamarjoe; 21/04/2010 a las 19:47