Это не вывод HTML-страницы с несколькими изображениями, а файл изображения (вы изменяете заголовок типа содержимого на image / png), так что вы можете вывести таким образом только одно изображение, так как вы не можете снова отправлять заголовки как только вы уже отправили вывод (что делает imagepng()
).
То, что вы хотите сделать, это создать другую страницу, которая будет иметь несколько изображений, и использовать страницу с вышеуказанной функцией в качестве источника изображения. Затем вам нужно просто передать параметры графика (или сохранить их в сеансе или базе данных, как вы хотите) и использовать эту информацию для создания изображения.
Таким образом, если указанный выше код был в файле с именем "make_graph.php", вы должны создать другой HTML-файл со следующим и настроить свой текущий код так, чтобы он принимал значения от $ _GET.
<img src="make_graph.php?values=23;32;35;57;12" />
<img src="make_graph.php?values=123;232;335;157;102" />
Тогда то, что я назвал "make_graph.php", будет
<?php
function draw_graph($values)
{
// ... your current code
}
$values = explode(";", $_GET['values']); // You'll probably want to sanitize $_GET input
make_graph($values);
?>
Другая вещь, которую вы могли бы попробовать, - это объединить все изображения в одно большое изображение. Таким образом, вы создаете конечное изображение, которое имеет ту же ширину, но высоту, равную высоте всех 4-х изображений вместе, а окончательное изображение - это изображение всех 4-х графиков друг над другом (я не имею в виду слоистость, я имею в виду второй график). появляется ниже 1 и т. д.).