У меня есть переменная ($output
), которая установлена в строку.
Чтобы пометить эту строку изображением, я использую PHP: GD Library .
В частности, функция imagestring () , которую я использую с очень небольшим изменением:
<?php
// Create a 100*30 image
$im = imagecreate(100, 30);
// White background and blue text
$bg = imagecolorallocate($im, 255, 255, 255);
$textcolor = imagecolorallocate($im, 0, 0, 255);
// Write the string at the top left
imagestring($im, 5, 0, 0, $output, $textcolor); #here is my string $output
// Output the image
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>
Это работает, как и ожидалось: $output
превращается в изображение.
Итак, моя проблема (или, по крайней мере, моя лучшая догадка):
header('Content-type: image/png');
Что, не позволяет мне выводить html после этого.
Итак, я прочитал этот вопрос, который спрашивает, можете ли вы использовать два заголовка , которые вы не можете, но принятый ответ рекомендует, что-то вроде этого: <img src="my_img.php" />
Это, конечно, было бы хорошо, за исключением того, что я не знаю, как это решило бы мои проблемы с тех пор, даже если бы я знал источник этого изображения (, который я не знаю - так, это было бы моим первый вопрос, каков путь к сгенерированному изображению *) Я бы не изменил тот факт, что заголовок есть и не позволяет выводить текст.
Итак, как бы вы подошли к этому вопросу?
Заранее спасибо !!
* Я думаю, это решило бы мои проблемы, так как я мог бы сделать это с внешним файлом, и просто вызвать изображение (но, возможно, нет, так как мне нужно было бы включить, и это также включило бы заголовок), как вы видите Я немного смущен. Извините:)
UPDATE:
Итак, я вижу, что мой вопрос сбивает с толку, поэтому я добавлю еще немного кода, чтобы посмотреть, не прояснит ли это мою проблему немного больше:
<?php
$x = mt_rand(1,5);
$y = mt_rand(1,5);
function add($x, $y) { return $x + $y; }
function subtract($x, $y) { return $x - $y; }
function multiply($x, $y) { return $x * $y; }
$operators = array(
'add',
'subtract',
'multiply'
);
$rdno = $operators[array_rand($operators)];
$result = call_user_func_array($rdno, array($x, $y));
session_start();
$_SESSION['res'] = $result;
if ($rdno == "add") {
$whato = "+";
}elseif ($rdno == "subtract") {
$whato = "-";
} else {
$whato = "*";
}
$output = $x . $whato . $y . " = ";
?>
<form name="input" action="check.php" method="post">
<input type="text" name="result" />
<input type="submit" value="Check" />
</form>
Я хочу, чтобы $output
был изображением , поэтому я попытался использовать скрипт PHP: GD, описанный выше, но я не могу поместить его в тот же файл из-за заголовка.