Как использовать функцию генерации изображения? - PullRequest
0 голосов
/ 29 июня 2010

У меня есть php-код, который генерирует gif-изображение, определяемое набором параметров.Я написал этот код как функцию, и теперь я хочу вставить изображение в HTML-страницу.

Моя проблема заключается в том, что всякий раз, когда я использую тег img, мне нужно указать имя файла, содержащего изображение, но янет изображения в файле.Файл, содержащий функцию для генерации изображения, не содержит изображения, он содержит функцию, генерирующую изображение.

Я мог бы использовать файл, который содержал бы изображение, но тогда я не знаю, как передать параметры вэтот файл.Использование $ _GET не кажется хорошим решением, поскольку один из аргументов функции - большой массив.

Есть ли элегантное решение описанной проблемы?

Ответы [ 2 ]

1 голос
/ 29 июня 2010

Использование $ _GET не кажется хорошим решением, поскольку один из аргументов функции - большой массив.

Вы можете serialize() массив с вашими параметрами и сохранить его во временном файле со случайно сгенерированным идентификатором. Затем вы передадите этот идентификатор в файл изображения:

<img src="script.php?data=1230491039202439">

если вы выполните операцию создания в сценарии, который создает HTML-код, содержащий ссылку на изображение до вывода тега img, это будет безопасно сделать.

Другой подход - генерировать все изображения в отдельном процессе и записывать их в файл (имя файла, например, из значения md5() массива сериализованных данных). Это было бы эффективным решением для кеширования, в котором во время запроса не производились никакие вычисления. Это может или не может быть осуществимо для вас, в зависимости от архитектуры вашего проекта.

0 голосов
/ 29 июня 2010

Вы можете создать файл PHP, который сгенерирует нужное вам изображение из указанных $_GET аргументов. В теге <img ... /> вы можете указать в качестве источника изображения путь к файлу PHP, которому передаются правильные аргументы. В PHP-скрипте не забудьте правильно указать информацию заголовка content-type.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...