2010-09-17 6 views
7

Contexte: Nous utilisons des graphiques Google pour créer des graphiques de certaines données générées par notre application Web. L'utilisateur crée un rapport, puis envoie ce rapport par courrier électronique. Le problème est, une fois que l'utilisateur ouvre le rapport dans Microsoft Word, ce programme présente un comportement étrange concernant les images générées dynamiquement. Donc, en utilisant PHP, nous voulons enregistrer nos graphiques générés dynamiquement sur le serveur, car Word peut gérer des images simples liées sans aucun problème.Comment enregistrer les graphiques Google sur le serveur

Je ne sais pas comment procéder. Des idées?

+0

vous pouvez les envoyer directement dans l'email, voir http://datamakessense.com/kpi-emails-with-google-charts-url-parameters – AdrianBR

Répondre

8
<? 
$imageData = file_get_contents('http://chart.apis.google.com/chart... etc'); 

// Attach image data as attachment to an email 
//OR: 

file_put_contents('/path/to/save/image.png',$imageData); 
?> 
0

Récupérez simplement l'image en utilisant l'URL générée par votre webfrontend, puis ajustez le code qui génère les rapports pour inclure les images stockées localement au lieu des URL Google Chart.

Un autre problème?

1

vous pouvez utiliser une boucle pour aller chercher l'image et de l'enregistrer sur le serveur:

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, "http://url.to.chart/"); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_FILE, '/path/to/file'); 
curl_exec($ch); 
curl_close($ch); 
2

La façon la plus simple est probablement d'utiliser quelque chose comme curl pour récupérer l'image de Google et de l'écrire dans un fichier sur votre serveur. Vous pouvez également utiliser fopen et les fonctions connexes, si vous activez l'option allow_url_fopen.

Questions connexes