Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Po foreach brak polskich znaków..
Forum PHP.pl > Forum > Przedszkole
NetJaro
Witajcie.

  1. <?php
  2. $sSlowo = 'cześć';
  3. $aSlowo = str_split($sSlowo);
  4. foreach ($aSlowo as $litera){
  5. echo $litera;
  6. }
  7. ?>

A więc, zmienna $sSlowo cały czas zawiera polskie znaki, jednak w pętli jak każdy znak wyświetlam oddzielnie tych polskich znaków już nie ma..


Jest na to jakaś rada?

Dzięki za pomoc.

Pozdrawiam,
Marcin.
blooregard
Ustawić kodowanie.
NetJaro
Mam ustawione.
Poprzez header(); na początku oraz tagi meta.
blooregard
A w edytorze, w którym piszesz, jakie masz kodowanie ustawione?
  1. <?php
  2. header("Content-type:text/html; charset=utf8");
  3. $sSlowo = 'cześć';
  4. $aSlowo = str_split($sSlowo);
  5. foreach ($aSlowo as $litera){
  6. echo $litera;
  7. }


Wynik:
Cytat
cześć

Edytor:NetBeans, kodowanie pliku: UTF-8
NetJaro
Hm, faktycznie tak jest OK.
Ale gdy dam to w <div> </div> to wtedy nie ma polskich znaków..

  1. header("Content-type:text/html; charset=utf8");
  2. $sSlowo = 'cześć';
  3. $aSlowo = str_split($sSlowo);
  4. foreach ($aSlowo as $litera){
  5. echo '<div>'.$litera.'</div>';
  6. }
erix
A wiesz, że nagłówki muszą być wysłane PRZED JAKIMKOLWIEK kodem HTML?
NetJaro
Tak, wiem - przecież nagłówek jest na samej górze.

  1. <?php
  2. header("Content-type:text/html; charset=utf8");
  3. $sSlowo = 'cześć';
  4. $aSlowo = str_split($sSlowo);
  5. foreach ($aSlowo as $litera){
  6. echo '<div>'.$litera.'</div>';
  7. }
  8. ?>

To jest mój cały kod.
nospor
@erix aleś grypsa walnal winksmiley.jpg

No ale juz powaznie.
str_split dzieli ci bajtami. Dając DIV kazdy bajt jest w div. polskie krzaki w utf8 to dwa bajty na krzak. Tak wiec kazdy bajt polskiego krzaka dzielisz divem i nic dziwnego ze sie nie wyswietla poprawnie
Kod
<div>c</div><div>z</div><div>e</div><div>�</div><div>�</div><div>�</div><div>�</div>

smile.gif
NetJaro
Dzięki smile.gif
Szkoda, że w manualu nic o tym nie ma smile.gif
Jakie jest na to rozwiązanie?
Używać może jakoś mbstring?
nospor
Nie ma powiadasz?
http://pl2.php.net/manual/pl/function.str-split.php
Cytat
It seems that this function splits according to byte-length and not character length.


Cytat
Używać może jakoś mbstring?
Tym razem zajrzyj do manuala - nie karz mi znowu tobie z niego cytowac
NetJaro
Komentarzy nie czytałem..sad.gif
Dobra, dzięki wielkie za pomoc smile.gif
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.