Этот код предназначен для возврата в качестве выходного изображения - вы можете использовать его как действительный src
для тега изображения. То есть вы могли бы сделать это:
<img src="thatfile.php?something=1" />
Заголовки сообщают браузеру, что данные, которые сервер отправляет, являются изображением (в частности, PNG-изображением).
В вашем примере кода файл фактически никогда нигде не записывается: данные остаются в памяти до тех пор, пока сценарий не завершится, а затем просто «забываются». imagedestroy
освобождает память и является хорошей практикой, но на самом деле в этом нет необходимости, так как память будет собираться после завершения запроса. Если вы хотите сохранить изображение в файле, вам нужно использовать одну из связанных функций, таких как imagepng
: http://www.php.net/manual/en/function.imagepng.php. Единственная разница между записью файла или нет в вашем примере кода - это отсутствие второго аргумента для imagepng
- вторым аргументом будет требуемый путь к файлу.
Было бы полезно прочитать документы по этому предмету, чтобы лучше понять, как эти функции работают и что делает каждая. На страницах документации есть много демонстраций, демонстрирующих это в действии.