Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Generowanie grafiki
Forum PHP.pl > Forum > Przedszkole
Macieqqq
Witam, mam taki plik txt:

Kod
1234567890,Tekst 1 – Opis 1
1234567890,Tekst 2 – Opis 2
1234567890,Tekst 2 – Opis 3
1234567890,Tekst 2 – Opis 4


Czy mozliwe jest wygenerowanie grafiki na podstawie 1 linijki pomijajac pierwszych 10 cyfr oraz przecinek? Tak, aby grafika zawierala Tekst 1 – Opis 1?



Z gory dzieki za pomoc
Pozdrawiam
Cysiaczek
Trochę dziwny post,,, tak da się to zrobić, Użyj funkcji file" title="Zobacz w manualu PHP" target="_manual, explode" title="Zobacz w manualu PHP" target="_manual do wyciągnięcia tych danych.

Pozdrawiam.
Macieqqq
Ale czy moglibyscie mnie jakos naprowadzic, co po kolei robic? Bo ja z "Przedszkola", a to chyba do najlatwiejszych rzeczy nie nalezy sadsmiley02.gif
Cysiaczek
To są akurat jedne z prostszych rzeczy. Gotowca Ci nie dam, ale:
1. Pobierasz zawartośc pliku do tablicy file" title="Zobacz w manualu PHP" target="_manual
2. Dla każdej linijki (dla każdego elementu tablicy z pkt. 1) robisz explode" title="Zobacz w manualu PHP" target="_manual po przecinku (,)
2a. Z otrzymanej w ten sposób dwuelementowej tablicy pobierasz index o numerze 1, który jest Twoim tekstem

Przydatna może być funckja print_r" title="Zobacz w manualu PHP" target="_manual, aby oglądać wyniki explode.

Pozdrawiam.
nexis
Aby wyświetlić wybraną zawartość pliku TXT możesz użyć poniższego kodu:

  1. <?php
  2.  
  3. $file = 'plik.txt';
  4. $content = explode( PHP_EOL, file_get_contents( $file ) );
  5.  
  6. foreach ( $content as $key => $value ) {
  7. echo end( explode( ',', $value ) ) . '<br />';
  8. }
  9.  
  10. ?>


A jeśli chcesz to dodatkowo wyświetlić graficznie to użyj następującego kodu:

  1. <?php
  2.  
  3. $file = 'plik.txt';
  4. $content = explode( PHP_EOL, file_get_contents( $file ) );
  5.  
  6. header("Content-type: image/png");
  7.  
  8. $im = @imagecreate(160, 80);
  9. $white = imagecolorallocate($im, 200, 200, 200);
  10. $black = imagecolorallocate($im, 0, 0, 0);
  11.  
  12. foreach ( $content as $key => $value ) {
  13. imagestring($im, 6, 5, ($key*20), end( explode( ',', $value ) ), $black);
  14. }
  15. imagepng($im);
  16. imagedestroy($im);
  17.  
  18. ?>
Macieqqq
Cytat(nexis @ 12.08.2007, 15:30:29 ) *
A jeśli chcesz to dodatkowo wyświetlić graficznie to użyj następującego kodu:

  1. <?php
  2.  
  3. $file = 'plik.txt';
  4. $content = explode( PHP_EOL, file_get_contents( $file ) );
  5.  
  6. header("Content-type: image/png");
  7.  
  8. $im = @imagecreate(160, 80);
  9. $white = imagecolorallocate($im, 200, 200, 200);
  10. $black = imagecolorallocate($im, 0, 0, 0);
  11.  
  12. foreach ( $content as $key => $value ) {
  13. imagestring($im, 6, 5, ($key*20), end( explode( ',', $value ) ), $black);
  14. }
  15. imagepng($im);
  16. imagedestroy($im);
  17.  
  18. ?>

Ok, wlasnie o to mi chodzilo, ale teraz wyswietla sie:



Czy da sie zrobic tak, aby...

- wyswietlala sie tylko 1 linia
- pokazywal sie myslnik
- nie pokazywal sie znak nowej linii
- plik bylo mozna otworzyc z linku z koncowka *.png czy tam *.jpg


Z gory dziekuje
nexis
Utwórz skrypt o nazwie obrazek.png, a w nim umieść poniższy kod:

  1. <?php
  2.  
  3. header("Content-type: image/png");
  4.  
  5. $im = @imagecreate(160, 25);
  6. $white = imagecolorallocate($im, 200, 200, 200);
  7. $black = imagecolorallocate($im, 0, 0, 0);
  8.  
  9. $file = 'plik.txt';
  10. $content = file( $file );
  11. $line = end( explode( ',', $content[0] ) );
  12.  
  13. imagestring($im, 6, 5, 5, trim($line), $black);
  14.  
  15. imagepng($im);
  16. imagedestroy($im);
  17.  
  18. ?>


Następnie umieść w katalogu plik o nazwie .htaccess, a w nim umieść:

  1. :Location /*.(php|php4|php5|png)
  2. Use php5
Macieqqq
500 Internal Server Error sad.gif
nexis
W takim razie usuń plik .htaccess i korzystaj ze skryptu tradycyjnie poprzez rozszerzenie *.php.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.