Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Imap kodowanie znaków
Forum PHP.pl > Forum > PHP
Saruman
Witam,

mam problem z wyświetlaniem znaków polskich podczas pobierania wiadomości z serwera poczty (serwer outlook.office365). Korzystam z Xampp-a i tam już zarówno w php.ini jak i httpd.conf dodałem domyślne kodowanie UTF-8. Kod php wygląda następująco:
  1. <?php
  2. $imapPath = '{outlook.office365.com:143/imap}';
  3. $username = 'xxxxx@xxxxxx.pl';
  4. $password = 'xxxxxx';
  5.  
  6.  
  7.  
  8. $inbox = imap_open($imapPath,$username,$password) or die('Cannot connect to server: ' . imap_last_error());
  9.  
  10.  
  11.  
  12. $num = imap_num_msg($inbox);
  13.  
  14. if( $num >0 ) {
  15.  
  16. echo imap_qprint(imap_body($inbox, $num));
  17. }
  18.  
  19. imap_close($inbox);
  20.  
  21. ?>



Zamiast polskich znaków wyświetlane są znaki zapytania w obrazku(jak poniżej).

Wst?pnie mog? napisa?, ?e przygotowanie takiej funkcjonalno?ci to b?dzie ...

P.S. Przy wyświetlaniu znaków w PHP korzystając z innych funkcji niż imap, znaki wyświetlane są poprawnie.


Za pomoc z góry dziękuję i pozdrawiam.
Wazniak96
Przeczytaj dokładnie dokumentację funkcji imap_qprint i zobacz sobie komentarze poniżej wink.gif
Saruman
ok udało się. Poniżej rozwiązanie:
  1.  
  2.  
  3. $ov = imap_utf8(imap_body($inbox,$email_number, 0));
  4.  
  5. $ele = imap_mime_header_decode($ov);
  6.  
  7. echo mb_convert_encoding(imap_qprint($ele[0]->text), "UTF-8", "ISO-8859-2");
  8.  
  9.  
  10.  
  11.  
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.