Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Tablica, Polskie znaki, Przepisywanie adresu
csmaestro
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.02.2010

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


Witam, otóż znalazłem w necie fajną, pewnie dość popularną funkcję do przepisywania url - ładnych adresów.
Udało mi się go wprowadzić w życie:

  1. function czystyurl($plikBazowy = 'index.php')
  2. {
  3. if(strstr($_SERVER['REQUEST_URI'],$plikBazowy))
  4. {
  5. $parametry = explode($plikBazowy.'?',$_SERVER['REQUEST_URI']);
  6. }
  7. $parametry = explode(',',$parametry[1]);
  8. return $parametry;
  9. }
  10. $adres1 = czystyurl();


Mój problem polega na tym, że gdy funkcja pobiera zmienną z adresu, w której pojawia się polski znak - wyskakują krzaczki.

np. jeśli adres wygląda tak: index.php?wielkopolskie,Swarzędz

kod
  1. echo("$adres1[1]");


wyświetla mi - Swarz%C4%99dz sciana.gif

Wiem już, że problem leży w:
$_SERVER['REQUEST_URI']; - nie widzi polskich znaków

Macie jakieś pomysły?

Ten post edytował csmaestro 19.02.2010, 14:34:20
Go to the top of the page
+Quote Post
muniekw
post
Post #2





Grupa: Zarejestrowani
Postów: 243
Pomógł: 22
Dołączył: 1.06.2009
Skąd: Warszawa

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


Tu masz funkcje która zamienia znaki możesz jej użyć:
  1. function remove_accents($text)
  2. {
  3. $com_acentos=array(
  4. "ą","Ą","ć","Ć",
  5. "ę","Ę","ł","Ł",
  6. "ń","Ń","ó","Ó",
  7. "ś","Ś","ź","Ź",
  8. "ż","Ż"," ",".",
  9. ",","\"","\'");
  10. $sem_acentos=array(
  11. "a","A","c","C",
  12. "e","E","l","L",
  13. "n","N","o","O",
  14. "s","S","z","Z",
  15. "z","Z","_","",
  16. ".","","");
  17. return str_replace($com_acentos,$sem_acentos,$text);
Go to the top of the page
+Quote Post
csmaestro
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.02.2010

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


Zrobiłem coś takiego:

  1. $adres_do_zamiany = $_SERVER['REQUEST_URI'];
  2.  
  3.  
  4. function polskie_znaki($tekst)
  5. {
  6. $tabela = Array(
  7.  
  8. //UTF
  9. "%C4%85" => "ą", "%C4%84" => "Ą", "%C4%87" => "ć", "%C4%86" => "Ć",
  10. "%C4%99" => "ę", "%C4%98" => "Ę", "%C5%82" => "ł", "%C5%81" => "Ł",
  11. "%C3%B3" => "ó", "%C3%93" => "Ó", "%C5%9B" => "ś", "%C5%9A" => "Ś",
  12. "%C5%Bc" => "ż", "%C5%BB" => "Ż", "%C5%BA" => "ź", "%C5%B9" => "Ź",
  13. "%C5%84" => "ń", "%C5%83" => "Ń");
  14.  
  15. return strtr($tekst,$tabela);
  16. }
  17.  
  18. $adres_poprawny = polskie_znaki($adres_do_zamiany);
  19.  
  20. function czystyurl($plikBazowy = 'index.php')
  21. {
  22. if(strstr($adres_poprawny,$plikBazowy))
  23. {
  24. $parametry = explode($plikBazowy.'?',$adres_poprawny);
  25.  
  26. }
  27. $parametry = explode(',',$parametry[1]);
  28. return $parametry;
  29. }
  30. $adres = czystyurl();


Jednak, w tym momencie funkcja CZYSTYURL, przestała działać. Gdzie robie błąd? Wydaje mi się, że funkcja zatrzymuje się na if.
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A po co koło na nowo?
  1. rawurlencode
  2. iconv + ASCII//TRANSLIT


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
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: 19.08.2025 - 18:43