Я борюсь с библиотекой PHP GD.
Я написал скрипт с именем foo.php, который выводит png:
header('Content-type:image/png');
$img = imagecreatefrompng($url) or die('bad url:'.$url);
imagepng($img);
imagedestroy($img);
Он работает нормально.Его цель - принять параметр GET и затем выпустить соответствующий граф:
(например) foo.php?id=2
помещает хороший график в любой браузер.
Вот моя проблема:
В другом скрипте (baz.php) я хотел бы использовать readfile
или что-то подобное, чтобы взять изображение, созданное foo.php, и сделать так, чтобы baz.php отправил его в браузер. Но что бы я ни пытался, это не сработает, когда я вызываю baz.php
Пример из baz.php:
switch($id) {
case '1':
readfile('foo.php?id=1');
break;
case '2':
readfile('foo.php?id=2');
break;
// and so on...
}
Я получаю сообщение об ошибке:
failed to open stream: No such file or directory...
Если указать полный URL-адрес или путь:
readfile('http://localhost/dev/foo.php?id=1');
readfile('C:/xampp/htdocs/dev/foo.php?id=1');
... Я получаю ту же ошибку.
Если я добавлю заголовок в baz.php:
header('Content-type:image/png');
readfile($url);
В Firefox я получаю «Изображение» http://localhost/dev/baz.php" не может быть отображено, потому что оно содержит ошибки.В Chrome он показывает разорванное изображение размером 27,82 КБ с размерами 0x0
allow_url_fopen включено, и, как я уже говорил, foo.php без проблем создает pngs;Я просто не могу получить доступ из baz.php, который мне нужен.
Я могу, например, просто положить:
header("Location: foo.php?id=1");
, и он будет перенаправлять и выводитьизображение, но я не хочу делать перенаправление 302, Мне нужен baz.php, чтобы вытолкнуть изображение в браузер. Если я сохраню файл как статический файл, он будет загружен какЧто ж. Кажется, он не хочет обрабатывать динамический файл.
Любая помощь очень ценится.Заранее спасибо.