Tutorial: Precio Bitcoin (GD+PHP)

  • Autor Autor Cicklow
  • Fecha de inicio Fecha de inicio
Cicklow

Cicklow

Admin
Épsilon
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Hola, hacia rato que no armaba algo, pues colocare el codigo que se usa en https://forobeta.com/temas/precio-del-bitcoin.603106/ y lograr esto:
pBitcoin

PHP:
<?php
@set_time_limit(0);

//Verificamos que el referido sea forobeta.com, de esta manera si alguien trata de colocar nuestra img en otro lado no podra hacerlo.
if(stripos($_SERVER['HTTP_REFERER'], "forobeta.com")===false){
    //Si el referido no es nuestro requerido, mostramos un pixel de 1x1 png
    header('Content-type: image/png');
    echo gzinflate(base64_decode('6wzwc+flkuJiYGDg9fRwCQLSjCDMwQQkJ5QH3wNSbCVBfsEMYJC3jH0ikOLxdHEMqZiTnJCQAOSxMDB+E7cIBcl7uvq5rHNKaAIA'));
    die();
}

// Creamos una cabecera en nuestro codigo, indicando que seremos una imagen
header("Content-type: image/jpeg");

//conctrolamos los errores
error_reporting(E_ALL);
ini_set('display_errors', FALSE);

//Verificamos si existe nuestro cache, de lo contrario lo creamos.
if(!file_exists("cache.txt")){ SalvarCache(); }

//Abrimos nuestro archivo cache, el cual tenemos la info a mostrar
$A = json_decode(file_get_contents("cache.txt"),true);

//Comparamos los tiempos de nuestro cache con el actual
$datetime1 = new DateTime(date('H:i:s',time()));
$datetime2 = new DateTime(date('H:i:s',$A['f']));
$interval = $datetime1->diff($datetime2)->i;

//Si el interval es mayor o igual a 30 minutos necesitamos crear un nuevo cache.
if($interval>=30){
    SalvarCache();
}

//Abrimos nuestra imagen base, la cual le colocaremos lo necesario
$image = imagecreatefrompng("price.png");
//Creamos los colores a usar
$color = ImageColorAllocate($image, 255, 86, 0);
$verde = ImageColorAllocate($image, 99, 255, 38);
$viole = ImageColorAllocate($image, 255, 255, 255);
$fb = ImageColorAllocate($image, 249, 121, 6);

// colocamos los textos necesarios en la imagen usando la fuente sageoui
imagettftext($image, 37, 0, 155, 115, $color, './segoeui.ttf', $A['last'].' USD');
imagettftext($image, 15, 0, 160, 145, $verde, './segoeui.ttf', 'Apertura: '.$A['open'].' USD');
if((30-$interval)<=0){
    imagettftext($image, 8, 0, 160, 165, $viole, './segoeui.ttf', 'Actualizando cache...');
}else{
    imagettftext($image, 8, 0, 160, 165, $viole, './segoeui.ttf', 'Proximo update en '.(30-$interval).' minutos');
}
imagettftext($image, 15, 0, 185, 30, $fb, './segoeui.ttf', 'ForoBeta.com');

// mostramos en pantalla la imagen
ImageJPEG($image, NULL, 93);
ImageDestroy($image);

//Funcion encargada del cache
function SalvarCache(){
    $opts = array(
      'http'=>array(
        'method'=>"GET",
        'header'=>"Accept-language: en\r\n" .
                  "Cookie: foo=bar\r\n"
      )
    );

    $context = stream_context_create($opts);
    //Desde donde leemos la info
    $data = file_get_contents('https://www.bitstamp.net/api/ticker/', false, $context);
    $obj = json_decode($data,true);

    $obj['f'] = time();
    file_put_contents("cache.txt",json_encode($obj));
    $A = $obj;
}
?>

Eso seria todo, no necesita un cron para guardar el cache, al acceder a la imagen esta genera su cache cada X tiempo...

Descarga
Insertar CODE, HTML o PHP:
<?php
echo "https://test.cicklow.org/pBitcoin/pBitcoin.rar";

Saludos y buen año!!
 
Última edición:
Excelente buen aporte gracias por compartirlo
 
No entendí, ¿que es esto? 🤔😅
 
Solo sirve para bitcoins o se puede para otras criptos?
 
Chevere el tutorial bro, gracias por compartir 😉
 
No entendí, ¿que es esto? 🤔😅
Sirve para mostrar una imagen con contenido que se va actualizando de acuerdo a lo que obtenga en la URL de bitstamp.

Eso tiene diversas aplicaciones para generar contenido gráfico en forma automática.

Gracias clicklow
 
Atrás
Arriba