Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Tablica, Polskie znaki, Przepisywanie adresu
Forum PHP.pl > Forum > Przedszkole
csmaestro
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?
muniekw
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);
csmaestro
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.
erix
A po co koło na nowo?
  1. rawurlencode
  2. iconv + ASCII//TRANSLIT
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.