使用cURL通过代理获取谷歌图表图像

时间:2011-11-18 20:10:14

标签: php curl proxy google-visualization

我需要从谷歌图表中获取图像,但我是代理人的背后。

使用下面的代码(更改$ url)我可以从其他网站获取图片,但不能从谷歌获取图片:

  

$ url =   “http://chart.apis.google.com/chart?chs=450x270&chd=t:'.$values_list.'&cht=p&chl='.$labels_list.'&chco=80AF1B,FFFF8C& ; CHF = BG,S,F8F8F8' ;

$img = '../uploads/tx_oriindicadores/triglo.png'; 

file_put_contents($img, t3lib_div::getURL($url));

getURL()方法的代码使用cURL函数来连接和检索数据。

此时我只收到一个空文件。

为了从谷歌获取图片,是否有一些我关心的参数或配置?

感谢。


getURL()方法是TYPO3的原生方法,您可以在此页面中看到代码: http://doc-typo3.ameos.com/4.1.0/class_8t3lib__div_8php-source.html第2342行

我将参数传递到网站的后端。

4 个答案:

答案 0 :(得分:1)

尝试var_dump() - 函数的结果。如果它是FALSE,那么你可以通过添加一个来解决问题 在curl_close($ ch)之前echo curl_error($ch);;在getUrl()函数中并发布错误消息。

答案 1 :(得分:1)

尝试使用网址,例如wget --save-headers看看结果是什么。

然后更改url / agent / cookie设置,直到让它工作。

然后回到PHP。

答案 2 :(得分:0)

getURL函数似乎可以抑制错误。删除错误抑制(@),可能会出现一两个警告。

答案 3 :(得分:0)

上面的函数是正确的,问题是在变量$labels_list中有空格。因此用%20替换空格解决了这个问题。

直接URL请求中的空格不是问题,但在cURL中有。

因此,在使用cURL时,一般规则不使用空格,而是使用%20