使用PHP将Google Chart图像保存到文件

时间:2011-01-23 17:22:35

标签: php charts

我有一个脚本,可以为客户生成Google Chart图像。它可以在HTML中正常显示,但我现在需要将每个图表保存为.png。

如果我尝试:

$imageData = file_get_contents($url); file_put_contents('C:/xampp/htdocs/image.png',$imageData);

然后我总是收到

[function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 400

该脚本适用于普通图像,但不适用于Google图表。如果我使用cURL来保存图像也会得到相同的结果。

我的Google图表$ url的示例如下。我已经剔除冒号和管道符号,但它没有解决问题:

http://chart.apis.google.com/chart?cht=lc&chxt=x,y&chs=700x400&chco=76A4FB,FF9900&chg=0,8.3333333&chdl=Visits|Unique%20visits&chls=3|3&chma=40,20,20,30&chxr=1,0,33411&chds=0,33411&chd=t%3A33411,33411,33411,33411,33411,33411,33411,33411,33411,33411,33411,33411|33411,33411,33411,33411,33411,33411,33411,33411,33411,33411,33411,33411&chxl=0%3A|Jan-10|Feb-10|Mar-10|Apr-10|May-10|Jun-10|Jul-10|Aug-10|Sep-10|Oct-10|Nov-10|Dec-10

2 个答案:

答案 0 :(得分:1)

CURL示例:

<?php
    $ch = curl_init("www.example.com/curl.php?option=test");
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $output = curl_exec($ch);       
    curl_close($ch);
    echo $output; ?>

答案 1 :(得分:0)

我设法让这个工作到最后 - 似乎标签名称中的空格导致错误,替换为%20做了伎俩