Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Przyjazne linki, Problem z przyjaznymi linkami
bigbadcompany
post
Post #1





Grupa: Zarejestrowani
Postów: 57
Pomógł: 2
Dołączył: 16.09.2010
Skąd: Uć

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


Witam,

mam mały problem z przyjaznymi linkami. Otóż gdy tytuł przerabiany jest na przyjazny link zamiast polskich znaków ś ć itd nie ma konwersji z ś=>s rzućcie okiem na tę regułkę. Czy ona jest dobra ? Nie widzę w niej błędów. A jeśli nie regułka to gdzie ten błąd może siedzieć. Jeśli zajdzie potrzeba mogę jeszcze wstawić kawałki kodu które pomogą w detekcji problemu.

http://chybaty.eu/demotywatory/-l-wik-popy...o-o-przez-czk-/ <- tak wygląda link
http://chybaty.eu/demotywatory/zolwik-popy...o-przez-laczke/ <- tak wyglądać powinien

  1. // ----------------------------- seourl()
  2. function seourl_old($url)
  3. {
  4. $trans = array("ą"=>"a","ę"=>"e","ś"=>"s","ż"=>"z","ź"=>"z","ć"=>"c","ń"=>"n","ł"=>"l","ó"=>"o");
  5. $url = strip_tags(mb_convert_case($url, MB_CASE_LOWER, "UTF-8"));
  6. //strtolower z polskimi literkami
  7. $url = trim(strtr($url, $trans));
  8. $url .='$url';
  9. return $url;
  10. //zamienia polskie literki na literki z kodu ascii
  11. $url = preg_replace('/\s\s+/', '', $url);
  12. //jezeli znajdzie jeden niz wiecej znakow bialych obok siebie, to usuwa go
  13. $url = preg_replace('/[^a-z0-9]+/','-',$url);
  14. //znaki rozne od pozostalych liter ascii i cyfr zmieniamy na znaki przestankowe (myslniki)
  15. return $url;
  16. }


Jak widać w funkcji mam zawartą konwersję polskich znaków na zamienniki. Męczy mnie to już któryś dzień, inaczej nie zwracałbym się z prośbą do szanownych użytkowników tegoż zacnego forum (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
tehaha
post
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


nie wiem po co tu wyrażenia regularne ja używam takiej funkcji i wszystko śmiga:
  1. public static function stringToLink($string, $delimiter = '-')
  2. {
  3. $pol = array("ą", "ć", "ę", "ł", "ń", "ó", "ś", "ź", "ż", "Ą", "Ć", "Ę", "Ł", "Ń", "Ó", "Ś", "Ź", "Ż", '-','--','&quot;','!','@','#','$','%','^','&','*','(',')','_','+','{','}','|',':','"','<','>','?','[',']','\\',';',"'",',','.','/','*','+','~','`','=');
  4. $uni = array("a", "c", "e", "l", "n", "o", "s", "z", "z", "A", "C", "E", "L", "N", "O", "S", "Z", "Z", '-','','','','','','','','','','','','','','','','','','','','','','','','');
  5. $string = strtolower(str_replace($pol, $uni, $string));
  6. $link = str_replace(' ', $delimiter, $string);
  7. return $link;
  8. }
Go to the top of the page
+Quote Post
bigbadcompany
post
Post #3





Grupa: Zarejestrowani
Postów: 57
Pomógł: 2
Dołączył: 16.09.2010
Skąd: Uć

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


Sprawdzę jutro i napiszę czy hula (IMG:style_emoticons/default/smile.gif)

Cytat(tehaha @ 1.03.2011, 00:54:44 ) *
nie wiem po co tu wyrażenia regularne ja używam takiej funkcji i wszystko śmiga:


Całuję buty i ciućkam sznurówki (IMG:style_emoticons/default/smile.gif) Działa pięknie. Sorka, że taki delay ale miałem ostatnio dużo spraw na czaszce (IMG:style_emoticons/default/smile.gif)
Oczywiście poleciał "pomógł" (IMG:style_emoticons/default/smile.gif)

Do zamknięcia
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: 24.08.2025 - 01:26