Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Form action a rtf
Roberti1
post 7.12.2016, 15:30:59
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 7.12.2016

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


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. ?>
Powód edycji: [Kshyhoo]: bb-code
Go to the top of the page
+Quote Post
kayman
post 7.12.2016, 15:59:31
Post #2





Grupa: Zarejestrowani
Postów: 556
Pomógł: 40
Dołączył: 20.07.2012
Skąd: Warszawa

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


http://php.net/manual/pl/function.iconv.php
Go to the top of the page
+Quote Post
Niree
post 7.12.2016, 15:59:49
Post #3





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

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


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
Go to the top of the page
+Quote Post
Roberti1
post 7.12.2016, 17:32:50
Post #4





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 7.12.2016

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


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");
Powód edycji: [Kshyhoo]: bb-code
Go to the top of the page
+Quote Post
kayman
post 7.12.2016, 17:59:31
Post #5





Grupa: Zarejestrowani
Postów: 556
Pomógł: 40
Dołączył: 20.07.2012
Skąd: Warszawa

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


rtf to chyba ma kodowanie ANSI więc sprawdź takie

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

Go to the top of the page
+Quote Post
Roberti1
post 8.12.2016, 12:21:05
Post #6





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 7.12.2016

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


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


Ten post edytował Roberti1 8.12.2016, 12:21:45
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 23.05.2024 - 07:23