Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ucfirst() i pierwsza polska litera w nazwie
Forum PHP.pl > Forum > PHP
Less
Witajcie!
Prosze wytłumaczcie mi to zjawisko:

  1. $zm = "świat"; //wartość z bazy //kodowanie iso-2
  2. $tekst = ucfirst($zm);
  3.  
  4. echo $tekst; //daje 'świat' zamiast 'Świat'



dlaczego ta funkcja nie robi w tym wypadku dużego 'Ś' ?
i jak to zrobic (to duże 'Ś')?
wookieb
http://pl.php.net/ucfirst
Cytat
Note that 'alphabetic' is determined by the current locale. For instance, in the default "C" locale characters such as umlaut-a (ä) will not be converted.

W komentarzasz pod podany linkiem masz sporo przykładów jak to rozwiązać. M.in używać mb_*
Less
Witam ponownie...

przypominam mam strone z kodowaniem iso i bazę z latin2



mam kolejny podobny problem z funkcja strtoupper()


nie zamienia polskich znaków na duze...


Poczytałem manual i znalazlem tam następujacą funkcję:


  1. function str2upper($text){
  2. return strtr($text,
  3. "abcdefghijklmnopqrstuvwxyz".
  4. "\xB1\xE6\xEA\xA3\xF1\xF3\xB6\xBC\xBF". // ISO 8859-2
  5. "\xB9\x9C\x9F", // win 1250
  6. "ABCDEFGHIJKLMNOPQRSTUVWXYZ".
  7. "\xA1\xC6\xCA\xB3\xD1\xD3\xA6\xAC\xAF". // ISO 8859-2
  8. "\xA5\x8C\x8F" // win 1250
  9. );
  10. }



zasadniczo działa: ale nie robi duzek litery z prozaicznego "ł" exclamation.gif!!!!!!


why?

i drugie pytanie, moze ktos mi wytłumaczyć co to za znaki i skad brać te znaki z funkcji strtr() ? Chodzi mi o to jaki znak i jakie kodowanie reprezentuje jaki znak (bo rozumiem, ze ta funkcja po kolei zamienia znaki z 2 ciągów po kolei, jedne na drugie)...


Proszę o pomoc. Dzieki
wookieb
Oczywiście nie czytasz co się do ciebie pisze bo po co? Wieć po co zakładasz temat?
http://pl.php.net/mbstring
Less
Sorki, ale czytam!

Rozumiem brak czasu... ale prosze o trochę cierpliwości, pytam jak mi nie wychodzi...

Właściwie nie mam pretensji, bo bardzo mi pomogłes... ale tak przesadzajac troche, skoro i Ty przesadzasz proszę wytłumacz mi swoje zarzuty... Piszesz b. enigmatycznie, nie widzisz, że moge mieć problemy techniczne z tym rozwiazaniem i odsyłasz do obszernych źródeł. Czy sensem Forum jest napisanie: przeczytaj sobie w encyklopedii po chińsku ?


spróbowalem funkcji mb_ i nie zadzialaly... Moze nie mam czegos doinstalowanego na serwerze , starą wersję... ? Nie moim zreszta... ale na którym mam skrypt.

Szukam pomocy, bo nie umiem... może mam jednak problem z fachowym angielskim, nie wszystko rozumiem...


Już wiem, administrator mi powiedział
  1. [mozliwosci użycia funkcji] mb_ chyba nie [ma] bo nie ma mbstring wkompilowanego a to chyba funkcje tej biblioteki
  2.  
  3. jak bede robil upgrade to ew. dokompiluje


nie mam jeszcze, wychodzi, że bedę miał (kiedys) smile.gif
wookieb
Ech myślałem, że takie podstawy ma każdy serwer.
Dopisz po prostu
  1. function str2upper($text){
  2. return strtr($text,
  3. "abcdefghijklmnopqrstuvwxyzł".
  4. "\xB1\xE6\xEA\xA3\xF1\xF3\xB6\xBC\xBF". // ISO 8859-2
  5. "\xB9\x9C\x9F", // win 1250
  6. "ABCDEFGHIJKLMNOPQRSTUVWXYZŁ".
  7. "\xA1\xC6\xCA\xB3\xD1\xD3\xA6\xAC\xAF". // ISO 8859-2
  8. "\xA5\x8C\x8F" // win 1250
  9. );
  10. }
  11.  
Less
Nie pomogło sad.gif
już tak kombinowałem...
wookieb
No mnie jakoś działa tongue.gif
  1. $ciag = 'łukasz';
  2.  
  3. function str2upper($text){
  4. return strtr($text,
  5. "abcdefghijklmnopqrstuvwxyzł".
  6. "\xB1\xE6\xEA\xA3\xF1\xF3\xB6\xBC\xBF". // ISO 8859-2
  7. "\xB9\x9C\x9F", // win 1250
  8. "ABCDEFGHIJKLMNOPQRSTUVWXYZŁ".
  9. "\xA1\xC6\xCA\xB3\xD1\xD3\xA6\xAC\xAF". // ISO 8859-2
  10. "\xA5\x8C\x8F" // win 1250
  11. );
  12. }
  13.  
  14. echo str2upper($ciag);

Sprawdź jakie masz kodowanie swoich ciągów, ale generalnie pośpiesz admina o mb smile.gif
Less
Tak to musi byc problem z kodowaniem... sama funkcja w takim wydaniu (dla "Ł") działa, ale na stronie niestety nie.


Moja strona: w bazie mam latin2, na stronie iso-...-2.


Moze ktoś to zjawisko umie wyjaśnić i rozwiązać problem ? Jest to dla mnie intrygujace.
wookieb
A posiadasz iconv na serwerze? Wtedy możesz przekonwertować do utf-8 i po kłopocie
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.