Witaj Go¶ciu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Mod_rewrite i polskie znaki
RSX
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Doł±czył: 17.01.2006

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


Mam otóż taki problem korzystam z forum punbb które udało mi się przerobić na przyjazne linki ale niestety z jedn± rzecz± nie radzę sobie otóż:
Mam taki adres - http://adres.pl/t20-znalazłe¶-bł±d-zgło¶.html
jak wiadomo przegl±darki nie najlepiej lubi± polskie ogonki więc adres wygl±da tak:
http://adres.pl/t20-znalaz%C5%82e%C5%9B-b%...%82o%C5%9B.html
jak sobie z tym poradzić dodam, że mam co¶ takiego:

  1. <?php
  2. function makeurl($type, $id, $name) {
  3. # Type must be "f" for forum, "t" for topic or "p" for post
  4. # ID is the id of the content wanted
  5. # Name is the title of the category or topic
  6.  
  7.  
  8. $words = explode(" ", $name);
  9. $url;
  10. foreach ($words as $word) {
  11. if(strlen($word) > 3)
  12. $url .= '-' . $word;
  13. }
  14. $url = strtr($url,'/ABCDEFGHIJKLMNOPRSTWZXY:','-abcdefghijklmnoprstwzxy-');
  15. $url = urlencode($type . $id . $url . ".html");
  16.  
  17. return $url;
  18. }
  19. ?>


Co dodać aby polskie znaki były pokazywane bez ogonków (strona jest w kodowaniu utf-8) oraz co zrobić żeby nawiasy które wyst±pi± w nazwie były pomijane.

Pozdrawiam.
Dzięki z góry za pomoc.

Ten post edytował RSX 29.05.2007, 15:39:36
Go to the top of the page
+Quote Post
tommy4
post
Post #2





Grupa: Zarejestrowani
Postów: 288
Pomógł: 12
Doł±czył: 2.12.2005

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


poczytaj o str_replace.

Możesz np. zrobić tak:

  1. <?php
  2. $text = "ˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇ±±±±±±±±±±±±ˇ)))))))(((((";
  3. $search = array('ˇ', '±', '(', ')');
  4. $replace = array('A', 'a', '', '');
  5. $text = str_replace($search, $replace, $text);
  6. ?>

i zmienna $text powinna potem nie miec nawiasów oraz miec zamienione ˇ na A i ± na a.

Jest jeszcze funkcja str_ireplace (lub stri_replace, nie pamietam dokladnie), która nie jest case-sensitive. ALe nie wiem czy działa to na polskie znaki.
Go to the top of the page
+Quote Post
RSX
post
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Doł±czył: 17.01.2006

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


Cytat(tommy4 @ 29.05.2007, 17:06:36 ) *
poczytaj o str_replace.

Możesz np. zrobić tak:

  1. <?php
  2. $text = "ˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇ±±±±±±±±±±±±ˇ)))))))(((((";
  3. $search = array('ˇ', '±', '(', ')');
  4. $replace = array('A', 'a', '', '');
  5. $text = str_replace($search, $replace, $text);
  6. ?>

i zmienna $text powinna potem nie miec nawiasów oraz miec zamienione ˇ na A i ± na a.

Jest jeszcze funkcja str_ireplace (lub stri_replace, nie pamietam dokladnie), która nie jest case-sensitive. ALe nie wiem czy działa to na polskie znaki.



Ale ja muszę przerobić taki kod a nie dawać jaki¶ inny więc nie wiem po co mi dajesz całkowicie inny kod który nie ma nic wspólnego z moim i moim problemem.

  1. <?php
  2. function makeurl($type, $id, $name) {
  3. # Type must be "f" for forum, "t" for topic or "p" for post
  4. # ID is the id of the content wanted
  5. # Name is the title of the category or topic
  6.  
  7.  
  8. $words = explode(" ", $name);
  9. $url;
  10. foreach ($words as $word) {
  11. if(strlen($word) > 3)
  12. $url .= '-' . $word;
  13. }
  14. $url = strtr($url,'/ABCDEFGHIJKLMNOPRSTWZXY:','-abcdefghijklmnoprstwzxy-');
  15. $url = urlencode($type . $id . $url . ".html");
  16.  
  17. return $url;
  18. }
  19. ?>


- Prosił bym o podpowiedzenie co w powyższym kodzie przerobić ...
Go to the top of the page
+Quote Post
scorpion_1982
post
Post #4





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Doł±czył: 10.12.2007
Sk±d: Nowy S±cz

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


kolega wyżej dobrze ci podpowiedział, być może do tego czasu już znalazłe¶ odpowiedz ale je¶li nie to ci to wytłumacze.

nie da się wpisać polskich znaków do adresu url, ponieważ s± one zamieniane na odpowiedni im znak.

Kolega podpowiedział by¶ przerobił polskie znaki
piszesz sobie funkcje i poprostu wywołujesz co¶ przez ni±

czyli jesli masz w adresie powiedzmy
zgło¶-bł±d to zamieni ci go na zglos-blad.
a je¶li szukasz kogo¶ kto ci napisze gotowy kod to niestety nie wiem czy tu tak± osobe znajdziesz, bo je¶li uczysz się lub piszesz w php, trzeba umieć posłużyć się googlami lub chociaż by wyszukiwark± na tym forum, za pomoc± str_replace załatwisz sprawe i powywalasz polskie ogonki i po sprawie, kodu zbytnio nie musisz zmieniać,
Pozdrawiam
Go to the top of the page
+Quote Post
dadexix
post
Post #5





Grupa: Zarejestrowani
Postów: 439
Pomógł: 21
Doł±czył: 28.06.2007
Sk±d: Bielsko-Biała

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


Kod
    $url = strtr($url,'/ABCDEFGHIJKLMNOPRSTWZXY:','-abcdefghijklmnoprstwzxy-');
    $url = urlencode($type . $id . $url . ".html");


zmień na

str-ireplace



Kod
$znaki = array("±","ć","¶","ę",Ľ","ó");
$znaki2 = array("a","c","s","e","c","z","o");
$url = str_ireplace($znaki,$znaki2,$url);
$url = strtr($url,'/ABCDEFGHIJKLMNOPRSTWZXY:','-abcdefghijklmnoprstwzxy-');
$url = urlencode($type . $id . $url . ".html");


i ów cała filozofia:D
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: 23.08.2025 - 18:21