Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Zamiana polskich znaków
Levi3r
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 1.11.2013

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


Witam,
Ten temat był już setki razy wałkowany na tym forum i nie tylko, ale wszystko co znalazłem nie chciało działać (IMG:style_emoticons/default/sad.gif) Najprawdopodobniej dlatego, że moje umiejętności php są żadne, ale do rzeczy. Chciałbym aby w adresie url wyświetlały się znaki bez polskich ogonków zamiast ą-a itp. Jedyne co udalo mi się osiągnąć to to, że wszystkie niepotrzebne znaki są wycinane z url co w przypadku liter mija się z celem. x. Do tej pory korzystałem z takiego kodu:
  1. function seo($name, $id) {
  2. $remove_illegal = str_replace(array('\\','/', ':','*','?','"','<','>','|', "'", '.', '`', '!', '#', '¤', '%', '&', '(', ')', '$', '€', '{', '[', ']', '}', ','),'',$name);
  3. $new_n = str_replace(' ', '-', trim($remove_illegal));
  4. return strtolower($id."-".$new_n);

w str_replace były dopisane jeszcze polskie literki. Kodowanie w phpmyadmin mam utf8_general_ci
Proszę Was bardzo o łopatologiczne wyjaśnienie co, jak i gdzie zrobić żeby zadziałało

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
SmokAnalog
post
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Z Twojego opisu nie wiadomo w ogóle co ma baza danych do tego.

Co do funkcji, to ja bym zrobił tak:
  1. Pozamieniał polskie znaki na ich łacińskie odpowiedniki:
    1. $replace = array(
    2. 'ą' => 'a',
    3. 'ć' => 'c',
    4. 'ę' => 'e',
    5. // itd.
    6. );
  2. Wszystko, co nadal nie jest literą, cyfrą lub myślnikiem zamienił na myślnik:
    1. $result = preg_replace('#[^a-zA-Z0-9-]#', '-', $result);
  3. Usunął myślniki z początku i końca oraz zamienił wszystkie wielokrotne myślniki na pojedynczy myślnik:
    1. $result = preg_replace('#-+#', '-', trim($result, '-'));
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: 15.10.2025 - 08:33