Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Form action a rtf
Forum PHP.pl > Forum > Przedszkole
Roberti1
Witam. Mam następujący problem z którym "walczę" od trzech dni samodzielni i szukając po necie rozwiązań ale żadne niestety nie przynosi pożądanych rezultatów.
Stąd moja prośba do Was. Mam formularz w którym użytkownik podaje dane dalej jest o przetwarzany przez plik konwersja.php i następnie otwierany jest szablon jako plik rtf.
W tym pliku w odpowiednich miejscach wyświetlają się dane wprowadzone przez użytkownika ( dalej jest już tekst wprowadzony wcześniej).
Do tej pory oczywiście wszystko jest OK. Ale mam "stary-nowy" problem z polskimi znakami.
Oczywiście nie wyświetlają się w pliku rtf ( tylko te wprowadzone przez użytkownika ).
Próbowałem poprzez funkcję konwersji polskich znaków ale efekt był żaden. Były też inne próby ale nic nie pomaga.
Macie jakieś pomysły ???.
Poniżej kod pliku konwwersja.php.
  1. <?php
  2. $podmianaa= $_POST['nazwa'];
  3. $podmianab= $_POST['ulica'];
  4. $podmianac= $_POST['kod'];
  5. $podmianad= $_POST['miasto'];
  6. $podmianae = $_POST['nazwad'];
  7. $podmianaf = $_POST['ulicad'];
  8. $podmianag = $_POST['kodd'];
  9. $podmianah = $_POST['miastod'];
  10. $file_name='New.rtf';
  11. if (($podmianaa= '') || ($podmianab== '') || ($podmianac=='') || ($podmianad=='') ||($podmianae= '') || ($podmianaf== '') || ($podmianag=='') || ($podmianah=='') ){
  12. echo "<hl>Błąd</h1><p>Należy wypełnić wszystkie pola</p>";
  13. } else {
  14. header( 'Content-type: application/msword' );
  15. header("Content-Disposition: inline; filename=konwersja.rtf");
  16. $wyswietl = fread($fp,filesize($plik));
  17. $wyswietl = przeksztalc($wyswietl);
  18. $wyswietl = str_replace( '^^NAZWA^^', $podmianaa, $wyswietl );
  19. $wyswietl = str_replace( '^^ULICA^^', $podmianab, $wyswietl );
  20. $wyswietl = str_replace( '^^KOD^^', $podmianac, $wyswietl );
  21. $wyswietl = str_replace( '^^MIASTO^^', $podmianad, $wyswietl );
  22. $wyswietl = str_replace( '^^NAZWAD^^', $podmianae, $wyswietl );
  23. $wyswietl = str_replace( '^^ULICAD^^', $podmianaf, $wyswietl );
  24. $wyswietl = str_replace( '^^KODD^^', $podmianag, $wyswietl );
  25. $wyswietl = str_replace( '^^MIASTOD^^', $podmianah, $wyswietl );
  26.  
  27. // wyświetlenie gotowego dokumentu
  28. echo $wyswietl;
  29. }
  30. ?>
kayman
http://php.net/manual/pl/function.iconv.php
Niree
Po co nadajesz zmienne typu $podmianaa, skoro możesz od razu wyświetlać z $_POST tongue.gif

http://stackoverflow.com/questions/5368150...excel-and-utf-8
Roberti1
Kayman, czy mógłbyś podpowiedzieć jak zastosować iconv?
Na pewno źle to robię bo nic nie pomaga.
Robię tak:
  1. echo iconv("UTF-8","UTF-8","$wyswietl");
kayman
rtf to chyba ma kodowanie ANSI więc sprawdź takie

  1. iconv("UTF-8", "Windows-1252", $wyswietl);

Roberti1
O ja "pierdziele" działa, kayman jesteś WIELKI.
Dzięki.

Kurde, za wcześnie się ucieszyłem. Oczywiście działa ale tylko częściowo. Tzn. na niektórych znakach diaktrycznych np. "ł" ( pewnie i innych ale nie na "Ó" ) plik rtf wywala taki błąd:
CODE
Notice: iconv(): Detected an illegal character in input string in C:\wamp\www\aaa\konwersja.php on line <i>31</i></th></tr>


Tym razem samemu doszedłem do rozwiązania ( BRAWO JA ). Po pierwsze należało w echo iconv podać Windows-1250 a nie Windows-1252 a po drugie należy dodać słowo
//TRANSLIT". Całość powinna wyglądać następująco
CODE
echo iconv("UTF-8", "Windows-1250//TRANSLIT", $wyswietl);
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.