2011-01-31 1 views
1

Можно ли использовать imagecreatefrompng() с php-файлом, который возвращает динамическое изображение png?Ошибка PHP imagecreatefrompng (файла), когда файл является файлом динамического изображения?

например.

<?php 
$IM = imagecreatefrompng('image.php?var=1'); 
?> 

где image.php выглядит примерно так:

<?php 
// code to generate image 
header("content-type: image/png"); 
imagepng ($OUTPUT); 
?> 

На данный момент я получаю «не удалось открыть поток» ошибка - это может быть сделано? Если нет, есть ли быстрые & легкие обходные пути? (Которые не связаны с использованием image.php, чтобы сохранить файл .png для сценария, чтобы обнаружить вместо этого.)

Спасибо,

Chris

+0

нет такого файла, глупо. –

+3

@Col. Шрапнель О чувак, пожалуйста, помогите парню, давая подробный ответ! – zaf

+0

Почему такая сложная структура? когда-либо пытался создать образ ОДИН, а не тысячу раз, передавая его из одного сценария в другой? –

ответ

4

параметрами запроса только ?var=1 работы при запросе ресурса через HTTP , а не через файловую систему. Чтобы сделать это, вы должны указать полный URL:

<?php 
$IM = imagecreatefrompng('http://localhost/image.php?var=1'); 
?> 

(Если PHP сконфигурирован, чтобы позволить этому)

Однако, как правило, гораздо более желательным способом будет включать image.php непосредственно и проход var, используя обычную переменную. Это избавит вас от HTTP-запроса, который, даже если он сделан локально, порождает новый процесс PHP.

+1

+1 вы сэр быстро. – zaf

+1

Это будет работать, только если включена опция 'php.ini'' allow_url_fopen'. http://php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen – Archimedix

+0

@Archimedix да. –