Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]zamiana polskich znaków
rafiksq
post
Post #1





Grupa: Zarejestrowani
Postów: 162
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Gdynia

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


Potrzebuje napisać funkcję, która zamieni małe znaki polskie na duże znaki również polskie, czyli np.świecie na Świecie Przeszukałem internet ale nic nie znalazłem. Mam coś takiego ale nie działa:
  1. function zamiana($string)
  2. {
  3. $male= array('/ś/');
  4. $duze= array('Ś');
  5. $zamiana= strtolower(preg_replace($male, $duze, $string));
  6. return str_replace(" ", "-", preg_replace("/[^a-zA-Z0-9 ]/", "", $zamiana) );
  7.  
  8. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
gothye
post
Post #2





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

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


strtoupper


--------------------
Nie udzielam pomocy poprzez PW
Go to the top of the page
+Quote Post
neverever
post
Post #3





Grupa: Zarejestrowani
Postów: 278
Pomógł: 44
Dołączył: 17.02.2004
Skąd: Wieliczka

Ostrzeżenie: (10%)
X----


  1. $str='pączkowy test wiadomości świątecznej';
  2.  
  3. $in = array('ą','ć','ę','ł','ń','ó','ś','ż','ź');
  4. $out = array('Ą','Ć','Ę','Ł','Ń','Ó','Ś','Ż','Ź');
  5. echo str_replace($in, $out, $str);


--------------------
neverever
Go to the top of the page
+Quote Post
rafiksq
post
Post #4





Grupa: Zarejestrowani
Postów: 162
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Gdynia

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


Cytat(gothye @ 11.02.2010, 17:01:00 ) *


niezamienia polskich znaków
Go to the top of the page
+Quote Post
athei
post
Post #5





Grupa: Zarejestrowani
Postów: 389
Pomógł: 141
Dołączył: 11.04.2009

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


strtolower i strtoupper nie działają dla utf-8, zamiast tego jest mb_strtolower('tekst','UTF-8') i mb_strtoupper('tekst','UTF-8') i
Go to the top of the page
+Quote Post
rafiksq
post
Post #6





Grupa: Zarejestrowani
Postów: 162
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Gdynia

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


A masz jakiś pomysł na zwiększenie tylko pierwszej litery z uwzględnieneiem polskich znakow? mb_ucfirst nie dziala:)
DOsłownie potrzebuje coś takiego:

  1. function change_upper_string($string){
  2. $tekst=mb_strtoupper($string,'UTF-8');
  3. $new_tekst=substr($tekst,0,2);
  4. $new_tekst.=mb_strtolower(substr($tekst,2), 'UTF-8');
  5. return $new_tekst;
  6. }
  7.  
  8. $tekst="święte góry";
  9. $tekst_tablica=explode(" ", $tekst);
  10.  
  11. $nowy='';
  12. foreach($tekst_tablica as $element) {
  13. $nowy.=change_upper_string($element)." ";
  14. }
  15.  
  16. echo $nowy


Powyższy skrypt powinien zmienić każdą pierwszą literę na dużą, niestety w tym przypadku zamiast "ó" są szlaczki.

Ten post edytował rafiksq 11.02.2010, 20:23:11
Go to the top of the page
+Quote Post
athei
post
Post #7





Grupa: Zarejestrowani
Postów: 389
Pomógł: 141
Dołączył: 11.04.2009

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


w manualu masz http://php.net/manual/de/function.ucfirst.php (komentarze)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 04:36