Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как одновременно сделать html + image на страничке?
Форумы портала PHP.SU » » HTTP и PHP » Как одновременно сделать html + image на страничке?

Страниц (1): [1]
 

1. nikki4 - 13 Марта, 2012 - 14:46:40 - перейти к сообщению
есть работающий код
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. //преобразование текста  в картинку
  3. function cr_im($text){
  4. $textsize=mb_strlen($text)*11+20;
  5. header ("Content-type: image/png");
  6. $im = @imagecreate ($textsize, 40)
  7. or die ("Cannot Initialize new GD image stream");
  8. $background_color = imagecolorallocate ($im, 255, 155, 255);
  9. $text_color = imagecolorallocate ($im, 0, 0, 0);
  10. $x=10;
  11. $y=30;
  12. $size=16;
  13. $ugol=0;
  14. $font='ariblk.ttf';
  15. imagettftext($im, $size, $ugol, $x, $y, $text_color, $font, $text);
  16. imagepng ($im);
  17. }
  18. $text="тест";
  19. cr_im($text);
  20. ?>

как его вставить на обычную штмл страничку?
если копировать как есть. возникает ошибка, что заголовок уже послан.
тогда удаляю эту строку и пишу
CODE (html):
скопировать код в буфер обмена
  1. <HEAD>
  2. <META http-equiv=content-type content="text/html,image/png; charset=utf-8">
  3. </head>


а в результате вместо картинки, получается кучу символов непонятных.
Как сделать вывод результата этого кода на страничке?
2. ar4webber - 13 Марта, 2012 - 15:05:53 - перейти к сообщению
Код который заключен в <?php ... ?> должен быть в файле с расширением *.php
3. nikki4 - 13 Марта, 2012 - 15:09:18 - перейти к сообщению
ar4webber пишет:
Код который заключен в <?php ... ?> должен быть в файле с расширением *.php

это понятно. я видимо не так выразился. под штмл страничкой имел ввиду
CODE (html):
скопировать код в буфер обмена
  1. <META http-equiv=content-type content="text/html,image/png; charset=utf-8">

но это в пхп файле
а как сделать чтоб выводилось изображение на том файле одновременно с той php страничкой?
4. Zuldek - 13 Марта, 2012 - 15:13:33 - перейти к сообщению
content="text/html

выводите html,

<img src="
<?

//код отдающий ссылку на картинку, например:
echo "filename.php";

?>
">
5. nikki4 - 13 Марта, 2012 - 15:16:49 - перейти к сообщению
Zuldek пишет:
content="text/html
выводите html,
<img src="
<?
код отдающий ссылку на картинку.
?>
">

т.е. нужно сохранить картинку на сервере, потом вывести на экран img scr, а потом опять удалить?
а может есть какой-то другой способ? Улыбка
6. Zuldek - 13 Марта, 2012 - 15:20:39 - перейти к сообщению
nikki4 пишет:
т.е. нужно сохранить картинку на сервере, потом вывести на экран img scr, а потом опять удалить?
а может есть какой-то другой способ? Улыбка

Не обязательно.
Изображения передаются отдельно от HTML-кода. В данном случае вы указывается на скрипт который отдаст браузеру все заголовки и файл картинки.
Цитата:
...нужно сохранить картинку на сервере, потом вывести на экран img scr...

Протокол HTTP поизучайте. Все что вы отдаете в браузер у вас так или иначе хранится на сервере. Причем, это не "тыкание носом": поставьте прокси, лезтье на любой сайт и смотрите что у браузер "спрашивает" и что "отвечает" сервер. Так станет все сразу понятно.
7. nikki4 - 14 Марта, 2012 - 08:11:58 - перейти к сообщению
не получается..


есть файл test.php
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <!DOCTYPE html>
  3. <html>
  4. <HEAD>
  5. <META http-equiv=content-type content="text/html charset=utf-8">
  6. </HEAD>
  7. <body>
  8. <?php
  9. $str="некоторый текст";
  10. ?>
  11. <img src="image.php" />
  12. </body>
  13. </html>


есть файл image.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. //файл из которого берется текст
  3. include 'test.php';
  4. //функция преобразование текста  в картинку
  5. function create_image($text){
  6. header ("Content-type: image/png");
  7. $textsize=mb_strlen($text)*11+20;
  8. $im = @imagecreate ($textsize, 40)
  9. or die ("Cannot Initialize new GD image stream");
  10. $background_color = imagecolorallocate ($im, 255, 155, 255);
  11. $text_color = imagecolorallocate ($im, 0, 0, 0);
  12. $x=10;
  13. $y=30;
  14. $size=16;
  15. $ugol=0;
  16. $font = 'ariblk.ttf';
  17. imagettftext($im, $size, $ugol, $x, $y, $text_color, $font, $text);
  18. imagepng ($im);
  19. }
  20. //преобразование текста
  21. create_image($str);
  22. ?>


Появляется ошибка
CODE (htmlphp):
скопировать код в буфер обмена
  1. Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\test.php:7) in Z:\home\localhost\www\image.php


что делать? как я понимаю при инклюде видимо включаетcя text/html , а потому image/png не срабатывает..
8. DelphinPRO - 14 Марта, 2012 - 08:21:24 - перейти к сообщению
правильно понимаете. не должно быть никакго вывода, до отправки заголовков.
9. nikki4 - 14 Марта, 2012 - 08:34:20 - перейти к сообщению
DelphinPRO пишет:
не должно быть никакго вывода, до отправки заголовков.

поменял местами и сделал так:
header ("Content-type: image/png");
include 'test.php';
но тогда появляется изображение с надписью типа "изображение не может быть показанно так как содержит ошибки"..
10. snikers987 - 14 Марта, 2012 - 08:43:48 - перейти к сообщению
nikki4 не нужно инклудить test.php в image.php
11. nikki4 - 14 Марта, 2012 - 09:37:29 - перейти к сообщению
snikers987 пишет:
nikki4 не нужно инклудить test.php в image.php

а что в таком случае делать?
почитал про сессии.. попробовал, таже ошибка, что заголовки отправлены
(Добавление)
ураа заработало!
почитал про различные способы передачи данных.. и один из них сработал!
в имедж.пхп написал

а в тест.пхп
CODE (html):
скопировать код в буфер обмена
  1. <img src="image.php?text=<?=$text; ?>" />

 

Powered by ExBB FM 1.0 RC1