Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Każdy wyraz z wieliej litery
symonides
post
Post #1





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 12.11.2010

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


Cześć, mam następujący string "asd.dsa.sad" i chcę aby każdy wyraz rozpoczynał się wielką literą, czy istnieje jakiś lepszy sposób od poniższego?
  1. $str = implode('.', array_map('ucfirst', explode('.', $str)));

Niestety nic innego nie udało mi się wymyślić, bądź nie znalazłem czegoś co potrafi zrobić to "lepiej".
Go to the top of the page
+Quote Post
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


A co jest złego z tym?
Go to the top of the page
+Quote Post
symonides
post
Post #3





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 12.11.2010

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


Złego nic z tym nie jest, tylko odnoszę wrażenie, że jest to zrobione naokoło i chciałem się dowiedzieć, czy istnieje jakaś lepsza praktyka. Ot co.
Go to the top of the page
+Quote Post
Uriziel01
post
Post #4





Grupa: Zarejestrowani
Postów: 307
Pomógł: 37
Dołączył: 9.11.2010
Skąd: Zielona Góra

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


Drugim rozwiązaniem jest tutaj najpewniej uzycie str_repleace żeby zmienic '.' na spacje, potem ucwords aby zmienic pierwsze litery na wielkie na koniec znów str_repleace. Nie jest to szybsze, lepsze ani czytelniejsze. Ogólnie nie widzę niczego złego w Twoim rozwiązaniu.
EDIT:
Choc po przemyśleniu można tutaj zastosować wyrażenia regularne, zapewne było by to znacznie szybsze no i prócz formuły dosyć eleganckie rozwiązanie, ale to już musi podpowiedzieć ktoś kto czuje się pwwniej w reg exp'ach. Ja nie chcę Ci namącić w głowie.

EDIT2:
O Boże ile ja dzisiaj robie tych 'editów'.
Wydaje mi się że to jest najlepszy sposób:
  1. preg_replace('/([\.]|^)([a-z])/e', '"$1".strtoupper("$2")',$text);


Ten post edytował Uriziel01 19.12.2011, 11:13:13
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.12.2025 - 22:05