Оцените PHP с помощью cronjob и pipe для вывода в файл PNG - PullRequest
1 голос
/ 14 марта 2019

У меня есть файл PHP, который отображает изображение в формате PNG ( см. Онлайн , на основе Пример Google Charts ). Я хочу «выполнить» этот файл с помощью cronjob и использовать его для создания PNG-изображения на моем сервере каждый день.

Возможно ли это? Я могу запустить PHP / Bash, используя cronjob. Я попытался запустить скрипт PHP, который выполнял HTML, используя PHP eval(), но как мне передать вывод в файл 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>

1 Ответ

0 голосов
/ 15 марта 2019

Я бы предпочел использовать другие библиотеки PHP для этого.

Это странная идея, но ... вы можете использовать

firefox -headless http://localhost/script.html

и передайте chart.getImageURI () в скрипт PHP через ajax, расшифруйте его и сохраните. Затем запустите shell_exec, чтобы убить весь процесс firefox (я думаю, вам нужно будет использовать sudo).

...