Остановись и подумай немного. Как бы вы обычно вставляли изображение в файл HTML?
Вы создаете два файла: text.html и image.jpg. То же самое здесь, вы создадите два скрипа, один для вывода HTML, а другой для создания изображения. HTML будет выглядеть так:
<img src="generateimage.php" alt="generated image"/>
<br/>
<h2>ross</h2>
Сценарий generateimage.php
генерирует только изображение.
Давайте возьмем, например, форму, которая позволяет пользователю создать цифровую рождественскую открытку: он может выбрать изображение и написать под ним личную заметку.
form.html:
<html><body>
<form action="view_card.php" method="post">
Select an image:
<select name="imgname">
<option value="tree">Picture of Christmas tree</option>
<option value="santa">Picture of Santa</option>
</select><br/>
Write a message:
<textarea name="message"></textarea>
<br/>
<input type="submit" value="View Christmas card"/>
</form>
</body></html>
view_card.php:
<html><body>
Here is your Christmas card:
<hr/>
<!-- sending the requested image to the generateimage.php script
as a GET parameter -->
<img src="generateimage.php?imgname=<?php echo(urlencode($_POST['imgname'])); ?>"/>
<?php echo(htmlspecialchars($_POST['message'])); ?>
</body></html>
generateimage.php:
<?php
/* Stop evil hackers from accessing files they are not supposed to */
$allowed_files = array('tree' => 'tree.jpg', 'santa' => 'santa.jpg');
if( !isset($allowed_files[$_GET['imgname']]) {
exit; // Thank you for playing...
}
/* Attempt to open */
$im = @imagecreatefromjpeg($allowed_files[$_GET['imgname']]);
/* See if it failed */
if(!$im){
/* Create a black image */
$im = imagecreatetruecolor(150, 30);
$bgc = imagecolorallocate($im, 255, 255, 255);
$tc = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
/* Output an error message */
imagestring($im, 1, 5, 5, 'Error loading ' . $imgname, $tc);
}
header('Content-Type: image/jpeg');
imagejpeg($im);
imagedestroy($im);
?>