Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> ucfirst() i pierwsza polska litera w nazwie, dlaczego nie działa ?
Less
post
Post #1





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 4.06.2007

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


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 'Ś')?

Ten post edytował Less 1.11.2009, 12:48:14
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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_*
Go to the top of the page
+Quote Post
Less
post
Post #3





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 4.06.2007

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


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 "ł" (IMG:style_emoticons/default/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
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Oczywiście nie czytasz co się do ciebie pisze bo po co? Wieć po co zakładasz temat?
http://pl.php.net/mbstring
Go to the top of the page
+Quote Post
Less
post
Post #5





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 4.06.2007

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


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) (IMG:style_emoticons/default/smile.gif)

Ten post edytował Less 23.11.2009, 10:50:04
Go to the top of the page
+Quote Post
wookieb
post
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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.  


Ten post edytował wookieb 23.11.2009, 12:00:10
Go to the top of the page
+Quote Post
Less
post
Post #7





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 4.06.2007

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


Nie pomogło (IMG:style_emoticons/default/sad.gif)
już tak kombinowałem...

Ten post edytował Less 24.11.2009, 09:36:50
Go to the top of the page
+Quote Post
wookieb
post
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




No mnie jakoś działa (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Less
post
Post #9





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 4.06.2007

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


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.

Ten post edytował Less 24.11.2009, 13:54:18
Go to the top of the page
+Quote Post
wookieb
post
Post #10





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A posiadasz iconv na serwerze? Wtedy możesz przekonwertować do utf-8 i po kłopocie
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 08:04