Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ [PHP]Form action a rtf

Napisany przez: Roberti1 7.12.2016, 15:30:59

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. http://www.php.net/echo "<hl>Błąd</h1><p>Należy wypełnić wszystkie pola</p>";
  13. } else {
  14. http://www.php.net/header( 'Content-type: application/msword' );
  15. http://www.php.net/header("Content-Disposition: inline; filename=konwersja.rtf");
  16. $wyswietl = http://www.php.net/fread($fp,http://www.php.net/filesize($plik));
  17. $wyswietl = przeksztalc($wyswietl);
  18. $wyswietl = http://www.php.net/str_replace( '^^NAZWA^^', $podmianaa, $wyswietl );
  19. $wyswietl = http://www.php.net/str_replace( '^^ULICA^^', $podmianab, $wyswietl );
  20. $wyswietl = http://www.php.net/str_replace( '^^KOD^^', $podmianac, $wyswietl );
  21. $wyswietl = http://www.php.net/str_replace( '^^MIASTO^^', $podmianad, $wyswietl );
  22. $wyswietl = http://www.php.net/str_replace( '^^NAZWAD^^', $podmianae, $wyswietl );
  23. $wyswietl = http://www.php.net/str_replace( '^^ULICAD^^', $podmianaf, $wyswietl );
  24. $wyswietl = http://www.php.net/str_replace( '^^KODD^^', $podmianag, $wyswietl );
  25. $wyswietl = http://www.php.net/str_replace( '^^MIASTOD^^', $podmianah, $wyswietl );
  26.  
  27. // wyświetlenie gotowego dokumentu
  28. http://www.php.net/echo $wyswietl;
  29. }
  30. ?>

Napisany przez: kayman 7.12.2016, 15:59:31

http://php.net/manual/pl/function.iconv.php

Napisany przez: Niree 7.12.2016, 15:59:49

Po co nadajesz zmienne typu $podmianaa, skoro możesz od razu wyświetlać z $_POST tongue.gif

http://stackoverflow.com/questions/5368150/php-header-excel-and-utf-8

Napisany przez: Roberti1 7.12.2016, 17:32:50

Kayman, czy mógłbyś podpowiedzieć jak zastosować iconv?
Na pewno źle to robię bo nic nie pomaga.
Robię tak:

  1. http://www.php.net/echo iconv("UTF-8","UTF-8","$wyswietl");

Napisany przez: kayman 7.12.2016, 17:59:31

rtf to chyba ma kodowanie https://pl.wikipedia.org/wiki/Windows-1252 więc sprawdź takie

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


Napisany przez: Roberti1 8.12.2016, 12:21:05

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);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)