|
![]() |
#1 |
član
Certified
Datum učlanjenja: 09.06.2005
Lokacija: Serbia
Poruke: 57
Hvala: 2
8 "Hvala" u 7 poruka
![]() |
![]() 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 |
![]() |
![]() |
![]() |
#2 |
Ivan Dilber
Sir Write-a-Lot
|
![]() nisam to nikad koristio, ali mozes da probas sa ovim kodom (mada ni njega nisam koristio
![]() PHP kôd:
__________________
Leadership is the art of getting people to want to do what you know must be done. |
![]() |
![]() |
![]() |
#3 |
Banned
Knowledge base
Datum učlanjenja: 01.07.2005
Poruke: 1.598
Hvala: 206
140 "Hvala" u 89 poruka
![]() ![]() |
![]() 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:
|
![]() |
![]() |
![]() |
#4 |
Knowledge base
Wrote a book
Datum učlanjenja: 16.06.2005
Lokacija: Novi Sad
Poruke: 1.437
Hvala: 37
131 "Hvala" u 82 poruka
![]() ![]() |
![]() 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 ![]()
__________________
Năo quero mais seguir um só caminho Poslednja izmena od MorenoArdohain : 09. 06. 2006. u 11:23. |
![]() |
![]() |
![]() |
#5 |
Banned
Knowledge base
Datum učlanjenja: 01.07.2005
Poruke: 1.598
Hvala: 206
140 "Hvala" u 89 poruka
![]() ![]() |
![]() 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
![]() |
![]() |
![]() |
![]() |
#6 |
član
Certified
Datum učlanjenja: 09.06.2005
Lokacija: Serbia
Poruke: 57
Hvala: 2
8 "Hvala" u 7 poruka
![]() |
![]() 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:
|
![]() |
![]() |
![]() |
Alati teme | |
Način prikaza | |
|
|
![]() |
||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
iconv problem | Ilija Studen | PHP | 0 | 18. 04. 2008. 23:37 |