Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Funkcja nie zamienia polskich znaków, dotyczy literki ó
charli_22
post 17.02.2009, 13:55:28
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 10.03.2008

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


Witam
Mam prostą funkcję do zamiany polskich znaków. Kodowanie na stronie UTF-8. Wszystkie literki oprócz 'ó' są zamieniane. Może jakie pomysły czemu tak się dzieje?

  1. <?php
  2. function RemovePolishChars($string_to_replace)
  3. {
  4. $string_to_replace = strtolower($string_to_replace);
  5.  
  6. $polish_chars = array('ą', 'ć', 'ę', 'ł', 'ń', 'ś', 'ź', 'ż', 'ó');
  7. $change_to_chars = array('a', 'c', 'e', 'l', 'n', 's', 'z', 'z', 'o');
  8. $without_polish_chars = str_replace($polish_chars, $change_to_chars, $string_to_replace);
  9. return $without_polish_chars;
  10. }
  11. ?>


--------------------
Test-Com - blog o testowaniu
Go to the top of the page
+Quote Post
sannin
post 17.02.2009, 14:15:27
Post #2





Grupa: Zarejestrowani
Postów: 308
Pomógł: 13
Dołączył: 31.10.2008

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


Zobacz może tak:

  1. <?php
  2. $string = strtr($text, "ąćęłńóśżźĄĆĘŁŃÓŚŻŹąˇśŚĽŹ", "acelnoszzacelnoszzaasszz");    
  3. $string = strtolower($string);
  4. $string = str_replace(" ", "_", $string);
  5. $string = preg_replace('/[^a-zA-Z0-9]/', '_', $string);
  6. ?>
Go to the top of the page
+Quote Post
charli_22
post 17.02.2009, 14:25:36
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 10.03.2008

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


Zrobiłem jak radziłes i teraz słówko różne zamienił mi na: r_oacute_zsne

blinksmiley.gif


--------------------
Test-Com - blog o testowaniu
Go to the top of the page
+Quote Post
mls
post 17.02.2009, 14:38:12
Post #4





Grupa: Zarejestrowani
Postów: 677
Pomógł: 89
Dołączył: 31.08.2003
Skąd: Warszawa

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


Nie zamienia "ó" bo nie dostaje tego znaku w ciągu znaków w ogóle. Zamiast niego jest "&oacute;" więc nie ma się co dziwić.
A na przyszłość prościej zmienić pliterki tak:
  1. <?php
  2. $tekst = iconv('utf-8', 'ascii//translit', $tekst);
  3. ?>


Ten post edytował mls 17.02.2009, 14:39:39


--------------------
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 Wersja Lo-Fi Aktualny czas: 24.06.2025 - 06:14