Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/01/2017, 20:40
JESUMINISTROSYMAS
(Desactivado)
 
Fecha de Ingreso: septiembre-2008
Ubicación: Maracay edo Aragua Venezuela
Mensajes: 48
Antigüedad: 16 años, 2 meses
Puntos: 3
Pregunta Implementar QR Code images usando Google Chart API

Saludos chicos, en esta oportunidad estoy implementando una sencilla api para generar un codigo QR esa parte la tengo ya funcionando, con este codigo:

Código PHP:
//RUTAS
 
$basedesitio "http://sitiodeejemplo.com";
 
$inicio '/index.php';
 
$pngqr '/codigosqr';
 
$operador'?buscar=';
// $rutalibqr= '../../../../qr/qrlib.php';
 
$rutalibqr'./qr/qrcode.php';
 
$rutapngqr'/codigosqr/';
//INCLUYENDO LIBRERIA QR
include  $rutalibqr;
$qr = new qrcode();
//link
$qr->link($webdata);
echo 
"<p>Link</p>";
echo 
"<p><img src='".$qr->get_link()."' border='0'/></p>"
pero no logro comprender como puedo guardar la imagen generada en el servidor.
Código PHP:
//SALVAR PNG EN SERVIDOR
$file $qr->get_image();
$path=  $rutapngqr;
$qr->save_image($file$path); 
Dejo por aca el Scrip de la API a ver si alguno me colabora en mi duda,

Código PHP:
<?php  
/*************************************************************  
 * This script is developed by Arturs Sosins aka ar2rsawseen, http://webcodingeasy.com  
 * Fee free to distribute and modify code, but keep reference to its creator  
 *  
 * This class generate QR [Quick Response] codes with proper metadata for mobile  phones  
 * using google chart api http://chart.apis.google.com  
 * Here are sources with free QR code reading software for mobile phones:  
 * http://reader.kaywa.com/  
 * http://www.quickmark.com.tw/En/basic/download.asp  
 * http://code.google.com/p/zxing/  
 *  
 * For more information, examples and online documentation visit:   
 * http://webcodingeasy.com/PHP-classes/QR-code-generator-class  
 **************************************************************/  
class qrcode  
{  
    private 
$data;  
      
    
//creating code with link mtadata  
    
public function link($url){  
        if (
preg_match('/^http:\/\//'$url) || preg_match('/^https:\/\//'$url))   
        {  
            
$this->data $url;  
        }  
        else  
        {  
            
$this->data "http://".$url;  
        }  
    }  
      
    
//creating code with bookmark metadata  
    
public function bookmark($title$url){  
        
$this->data "MEBKM:TITLE:".$title.";URL:".$url.";;";  
    }  
      
    
//creating text qr code  
    
public function text($text){  
        
$this->data $text;  
    }  
      
    
//creatng code with sms metadata  
    
public function sms($phone$text){  
        
$this->data "SMSTO:".$phone.":".$text;  
    }  
      
    
//creating code with phone   
    
public function phone_number($phone){  
        
$this->data "TEL:".$phone;  
    }  
      
    
//creating code with mecard metadata  
    
public function contact_info($name$address$phone$email){  
        
$this->data "MECARD:N:".$name.";ADR:".$address.";TEL:".$phone.";EMAIL:".$email.";;";  
    }  
      
    
//creating code wth email metadata  
    
public function email($email$subject$message){  
        
$this->data "MATMSG:TO:".$email.";SUB:".$subject.";BODY:".$message.";;";  
    }  
      
    
//creating code with geo location metadata  
    
public function geo($lat$lon$height){  
        
$this->data "GEO:".$lat.",".$lon.",".$height;  
    }  
      
    
//creating code with wifi configuration metadata  
    
public function wifi($type$ssid$pass){  
        
$this->data "WIFI:T:".$type.";S:".$ssid.";P:".$pass.";;";  
    }  
      
    
//creating code with i-appli activating meta data  
    
public function iappli($adf$cmd$param){  
        
$param_str "";  
        foreach(
$param as $val)  
        {  
            
$param_str .= "PARAM:".$val["name"].",".$val["value"].";";  
        }  
        
$this->data "LAPL:ADFURL:".$adf.";CMD:".$cmd.";".$param_str.";";  
    }  
      
    
//creating code with gif or jpg image, or smf or MFi of ToruCa files as content  
    
public function content($type$size$content){  
        
$this->data "CNTS:TYPE:".$type.";LNG:".$size.";BODY:".$content.";;";  
    }  
      
    
//getting image  
    
public function get_image($size 150$EC_level 'L'$margin '0'){  
        
$ch curl_init();  
        
$this->data urlencode($this->data);   
        
curl_setopt($chCURLOPT_URL'http://chart.apis.google.com/chart');  
        
curl_setopt($chCURLOPT_POSTtrue);  
        
curl_setopt($chCURLOPT_POSTFIELDS'chs='.$size.'x'.$size.'&cht=qr&chld='.$EC_level.'|'.$margin.'&chl='.$this->data);  
        
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);  
        
curl_setopt($chCURLOPT_HEADERfalse);  
        
curl_setopt($chCURLOPT_TIMEOUT30);  

        
$response curl_exec($ch);  
        
curl_close($ch);  
        return 
$response;  
    }  
      
    
//getting link for image  
    
public function get_link($size 150$EC_level 'L'$margin '0'){  
        
$this->data urlencode($this->data);   
        return 
'http://chart.apis.google.com/chart?chs='.$size.'x'.$size.'&cht=qr&chld='.$EC_level.'|'.$margin.'&chl='.$this->data;  
    }  
      
    
//forcing image download 
    
public function download_image($file){ 
        
header('Content-Disposition: attachment; filename=QRcode.png'); 
        
header('Content-Type: image/png'); 
        echo 
$file
    } 
    
    
//save image to server
    
public function save_image($file$path "./QRcode.png"){ 
        
file_put_contents($path$file);
    } 
}  
?>
muchas gracias de antemano.