我有一个PHP文件,可渲染PNG图像(see online,基于Google Charts example)。我想使用cronjob“执行”此文件,并每天使用它在我的服务器上生成PNG图像。
这可能吗?我可以使用cronjob运行PHP / Bash。我尝试运行PHP脚本,该脚本使用PHP的eval()
执行HTML,但是如何将输出通过管道传输到PNG文件?
google.charts.load("current", {
packages: ['corechart']
});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Element', 'Density', {
role: 'style'
}],
['Copper', 8.94, '#b87333', ],
['Silver', 10.49, 'silver'],
['Gold', 19.30, 'gold'],
['Platinum', 21.45, 'color: #e5e4e2']
]);
var options = {
title: "Density of Precious Metals, in g/cm^3",
bar: {
groupWidth: '95%'
},
legend: 'none',
};
var chart_div = document.getElementById('chart_div');
var chart = new google.visualization.ColumnChart(chart_div);
// Wait for the chart to finish drawing before calling the getImageURI() method.
google.visualization.events.addListener(chart, 'ready', function() {
chart_div.innerHTML = '<img src="' + chart.getImageURI() + '">';
console.log(chart_div.innerHTML);
});
chart.draw(data, options);
}
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<div id='chart_div'></div>
答案 0 :(得分:0)
我宁愿使用其他PHP库来执行此操作。
这很奇怪,但是...您可以使用
firefox -headless http://localhost/script.html
并通过ajax将chart.getImageURI()传递给PHP脚本,对其进行解码并保存。然后运行shell_exec杀死所有的Firefox进程(我想你将需要使用sudo)。