Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP] osadzanie i generowanie obrazka w jednym skrypcie
kerum
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 3.04.2009

Ostrzeżenie: (0%)
-----


Dzien dobry,

mam pytanie odnosnie generowania obrazkow z PHP i wstawiania ich w HTML,
a konkretnie jak polaczyc obie czynnosci w jednym skrypcie PHP.

Typowe wstawianie obrazka jest rozbite na dwa pliki,
ponizszy przyklad dziala bez problemu:

plik test.php:

  1. <?php
  2. header( 'Content-type: image/png' );
  3. $img = imagecreatetruecolor( 150, 30 );
  4. imagepng( $img );
  5. imagedestroy( $img );
  6. ?>

plik test.html:

  1. <img src='test.php'>
  2. </html>

Zalezy mi na tym, aby obie czynnosci (generowanie obrazka i wstawianie go w HTML)
byly wykonane jednym skryptem PHP, cos w stylu:

plik test2.php:

  1. <?php
  2. function generate_php()
  3. {
  4. header( 'Content-type: image/png' );
  5. $img = imagecreatetruecolor( 150, 30 );
  6. imagepng( $img );
  7. imagedestroy( $img );
  8. }
  9.  
  10. echo '<html>';
  11. echo '<img src=', generate_php() , '>';
  12. echo '</html>';
  13. ?>

Niestety w tym przypadku otrzymuje slawny komunikat od funkcji header():
Warning: Cannot modify header information - headers already sent by
(czytalem odpowiedni rozdzial w FAQ: http://forum.php.pl/index.php?showtopic=44...=0&start=0)

Probowalem kombinowac z buforowaniem poprzez ob_start() i ob_flush() ale nie wiem,
czy to jest wlasciwe rozwiazanie.

Uwaga: nie chodzi mi o osadzenie rysunku jako URI data jak opisane np. tutaj:
http://www.sencer.de/article/1135/how-to-i...-with-data-uris

Chodzi mi o zasymulowanie w jedym skrypcie tego, co w pierwszym przykladzie
bylo zrealizowane w dwoch plikach.

Czy ktos ma jakis pomysl?

Pozdrawiam,
K.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kerum
post
Post #2





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 3.04.2009

Ostrzeżenie: (0%)
-----


sprobuje jeszcze raz opisac slowami o co chodzi.

W pierwszym poscie pokazalem dwa przyklady:
-> pierwszy z dwoma plikami (dzialajacy)
-> drugi z jednym skryptem (niedzialajacy)

W pierwszym przykladzie przegladarka dostaje strone, czyta ja, dochodzi do <IMG SRC=test.php>,
robi kolejnego request'a, wywolany skrypt test.php przygotowuje rysunek i podsyla go i ostatecznie strona wyswietla sie kompletnie z rysunkiem.

Chodzi mi o skonstruowanie analogicznego mechanizmu w jednym skrypcie. Probowalem naszkicowac go jako przyklad dwa.
Chcialbym zamienic wywolanie zewnetrznego skryptu php poprzez wywolanie funkcji w obrebie tego samego skryptu,
ktory wygenerowal html'a.
Ten przyklad nie dziala i zastanawiam sie, czy mozliwe jest jego poprawienie, np. poprzez buforowanie opozniajace dosylanie rysunku przez funkcje.

Innymi slowy czy da sie stworzyc rozwiazanie w jednym skrypcie, ktore wysyla w html strone zawierajaca <IMG SRC...>
a jednoczesnie dosyla zrodlo tego rysunku, w odpowiedzi na kolejny request przegladarki.

Pozdrawiam,
K.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 00:37