使用cURL通过代理获取谷歌图表图像
我需要从谷歌图表中获取图像,但我在代理之后。使用cURL通过代理获取谷歌图表图像
与下面的代码(改变$网址),我可以从其他网站从谷歌获得的图像,而不是:
$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的代码()方法使用卷曲功能的连接和检索数据。
此时我只收到一个空文件。
是否有一些参数或配置,我关心为了从谷歌获取图像?
谢谢。
使用getURL()方法是本地TYPO3的,你可以看到在这个页面的代码: http://doc-typo3.ameos.com/4.1.0/class_8t3lib__div_8php-source.html线2342
我通过该网站的后端传递参数。
上面的功能是正确的,问题是在变量$labels_list
有空格。所以用%20
替换空格解决了这个问题。
直接URL请求中的空格不是问题,但在cURL中有空格。
因此,一般来说,使用cURL时不要使用空格,而应使用%20
。
getURL函数似乎可以抑制错误。删除错误抑制(@)并且可能会出现警告或两个警告。
谢谢,但虽然我这样做,没有任何警告。 – Memochipan
您是否相应地设置了PHP错误级别? – Halcyon
是的,但只能看到与我的代码无关的Notice和Strict Standards消息。 – Memochipan
尝试var_dump() - 函数的结果。如果它是FALSE,那么你可以通过在curl_close($ ch)之前添加一个 echo curl_error($ch);
来找出问题;在getUrl()函数中并发布错误消息。
同意。你也可以尝试添加'curl_setopt($ ch,CURLOPT_VERBOSE,1);'。 – elazar
谢谢。我得到了bool(false)和'echo curl_error($ ch);'带来了消息**请求的URL返回错误:400 ** – Memochipan
使用下面的代码我可以使用方法的错误检查而不用触及核心代码:'$ report = array(); \t \t \t \t \t \t file_put_contents($ img,t3lib_div :: getURL($ url,0,FALSE,$ report)); \t \t \t \t \t \t回波$报告[ '消息'];' – Memochipan
尝试使用网址与例如wget --save-headers来查看结果是什么。
然后更改网址/代理/ cookie设置,直到它得到它的工作。
然后回到PHP。
使用wget --save-headers我获得了错误400错误请求。我以前从未使用过标题,你能建议我测试哪个标题吗? – Memochipan
您可以使用以下网址:http://chart.apis.google.com/chart?chs=450x270&chd=t:25,25,50&cht=p&chl=A|B|C&chco=80AF1B,FFFF8C&chf=bg,s, F8F8F8' – Memochipan
它与wget一起使用带引号的URL:'wget“http://chart.apis.google.com/chart?chs=450x270&chd=t:25,25,50&cht=p&chl=A|B|C&c HCO = 80AF1B,FFFF8C&CHF = BG,S,F8F8F8" '。现在我将用cURL进行测试。 – Memochipan
请显示所有卷发参数 –
@AurimasL我更新了问题并提供了更多信息。 – Memochipan
您可以立即在getURL()中的第一个if()分支之前var_dump()$ GLOBALS ['TYPO3_CONF_VARS'] ['SYS'] ['curlUse']的值并将结果粘贴到此处(省略任何密码和其他敏感信息)。 – elazar