![]() |
iconv
Pošto hoću da kreiram nice and clean URLs od naslova koji se čupaju iz baze u UTF-8 formatu, potrebno je da te naslove konvertujem u ISO-8859-1 kako bi se prikazao u URL-u lepo.
koristim nešto ovako $string = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $string); ovo //TRANSLIT piše u manualu da će se karakter prevesti u najsličniji njemu ako ne može tačno baš. međutim neće lepo da radi, npr kreira mi od naslova koji glasi Riverpsyde (Tiszapüspöki) and Protoneon.hu kreira URL: http://kalendar.psygarden.org/event/...nd-protoneonhu encoding stranice je UTF-8. http://kalendar.psygarden.org |
nisam to nikad koristio, ali mozes da probas sa ovim kodom (mada ni njega nisam koristio :) ):
PHP kôd:
|
Pomoglo bi kada bi rekao sta dobijas bez //TRANSLIT mrzi me da testiram sada.
U sustini jedini trenutak kada sam imao problem sa ovom konverzijom jeste kada sam morao da prevedem m$ office karaktere. (produzeni minus) To sam resio tako sto sam radio str_replace. Ako je to i tvoj problem jednostavno zameni produzeni minus (cini mi se da je 0x96 mada nisam siguran) sa obicnim minusom, isto mozes da uradis sa svim ostalim karakterima koji ti prave problem, sigurno ih nema mnogo. Sto se //TRANSLIT tice on ce ti retko pomoci u onome sto zelis da postignes. On je zaista zamenio sa slicnim karakterima, ali problem je u tome sto ni ti karakteri nisu url firendly. I jos kao dodatak evo kako sam ja resavao problem url-ova. PHP kôd:
|
Cvele, nije ti bas dobra funkcija, posto ne barata sa Unicode karakterima
Evo sta bi on dobio: riverpsyde-tiszapüspöki-and-protoneonhu A inace, tvoja funkcija je mogla i krace, sve nestandardne karaktere pretvara u - $url=stripslashes($string); $url=preg_replace('|\'|', '', $url); $url=preg_replace('|[^a-z0-9]|i', '-', $url); $url=preg_replace('|--+|i', '-', $url); $url=preg_replace('|^-|i', '', $url); $url=preg_replace('|-$|i', '', $url); Edit: tek sad skontah da Cvele nije ni rekao da to radi sa Unicode LOL, sorry :) |
znam da je mogla i krace ali posto sam duduk za regexp (a mrzi me da nesto radim povodom toga) to izgleda tako kako izgleda :)
|
rešio sam, tj promašio sam bio out encoding... mada sad kad naiđe na Unicode character, ignoriše ga, tj samo ga izbacuje. Bolje i to nego da stavlja Unicode.
evo celokupne funkcije za clean url: PHP kôd:
|
Vreme je GMT +2. Trenutno vreme je 21:29. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.