Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]wyrazy z dużej litery
shreker
post
Post #1





Grupa: Zarejestrowani
Postów: 270
Pomógł: 0
Dołączył: 21.05.2008

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


witam potrzebuję przetworzyć string tak żeby wszystkie wyrazy zaczynały się od duzej litery, bazuję na standardowym:
  1. $string = ucwords(strtolower($string));

ale jak zrobić aby wyrazy typu np: cyfry rzymskie, nazwy własne, skróty, itp napisane duzymi literami nie były przetwarzane czyli np: WOŚP ma zostać jako WOŚP a nie Wośp,
oraz druga sprawa: wyrazy zaczynające sie od polskich znaków typu ŁÓŚĄĘĆ .... również były przetwarzane poprawnie, bo zastosowanie powyższego przykładu niestety nie działa.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
markuz
post
Post #2





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


Jakieś słabe masz to Google.. Pierwszy wynik po wpisaniu mb_convert_case_utf8_variation
Gdyby jednak dla Ciebie Google nie było tak łaskawe:

  1. <?php
  2. function mb_convert_case_utf8_variation($s) {
  3. $arr = preg_split("//u", $s, -1, PREG_SPLIT_NO_EMPTY);
  4. $result = "";
  5. $mode = false;
  6. foreach ($arr as $char) {
  7. $res = preg_match(
  8. '/\\p{Mn}|\\p{Me}|\\p{Cf}|\\p{Lm}|\\p{Sk}|\\p{Lu}|\\p{Ll}|'.
  9. '\\p{Lt}|\\p{Sk}|\\p{Cs}/u', $char) == 1;
  10. if ($mode) {
  11. if (!$res)
  12. $mode = false;
  13. }
  14. elseif ($res) {
  15. $mode = true;
  16. $char = mb_convert_case($char, MB_CASE_TITLE, "UTF-8");
  17. }
  18. $result .= $char;
  19. }
  20.  
  21. return $result;
  22. }
  23. ?>


Źródło: http://www.php.net/manual/de/function.mb-c...-case.php#99081

Ten post edytował markuz 12.03.2014, 14:05:07
Go to the top of the page
+Quote Post

Posty w temacie


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: 27.12.2025 - 14:51