我正在尝试使用Google Charts API绘制一个大约7000个字符的图表,但该URL只接受2000个字符。但是我已经读过POST请求最多可以支持16k个字符,因此我尝试使用它来渲染图表。有一个PHP示例如何呈现图形然后使用该php文件作为img src,但是如何将我的dataload传递给另一个页面?
如果我把它作为GET参数放在img src本身中,它将会再次出现太多字符。我已经读过,如果你能提供帮助,你永远不应该创建一个超过2000个字符的URL,
也许我可以将它输出到一个文件然后让img php文件让它在每次请求时拉出来?
如果有人有任何建议,那将是一个巨大的帮助,
谢谢!
我已经读过URL字符限制取决于浏览器,IE约为2000,这是否意味着字符数大于此的img src将无法在此浏览器中正确呈现?或者,FF有一个更大的限制,下面的网站说超过100,000,所以它会在FF中呈现吗?
答案 0 :(得分:0)
我刚刚使用单独的请求获取了数据加载器,然后使用php文件作为图像源。
答案 1 :(得分:0)
使用curl将'GET'请求转换为我的代理脚本,转换为google的'POST'请求。 然后,您只需将您的代理网址替换为您应用中的Google。
function getChartProxy()
{
if(isset($_GET) && count($_GET)){
ob_clean();//remove any header or error messages from the output buffer
//example for testing
// $url = "http://chart.apis.google.com/chart?cht=p&chs=250x100&chd=t:40,30,20&chl=Hispanic|NonHispanic|Incomplete";
$getData = http_build_query($_GET);
$url = 'http://chart.apis.google.com/chart';
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$getData);
ob_start();
curl_exec ($ch);
curl_close ($ch);
$bytes = ob_get_contents();
ob_end_clean();
header('Content-type: image/png');
echo $bytes;
}
}
这是一个代理,因此需要某种访问控制才能在生产中使用。