URL dekódolás
Gugli kereső szavakat akarom visszafejteni, ezt adatbázisba felírkálni (statisztika; milyen szavakra keresnek és dobja ki a linkem a gugli, esetleg más keresők).
Kód:Kérdés:
ŐőŰű karaktereket hogy kaphatnám vissza - előre definiált érték keresése majd csere a helyes karakterre trükközés nélkül? Végső esetben ez is megtenné, akkor viszont kellene egy táblázat azokkal a karakterekkel (és a kódolás utáni értékekkel), amit az utf8 és url decode az ŰűŐő karakterekhez hasonlóan nem tud visszafejteni - ilyet nem találtam sehol.
Az ötleteket előre is köszönöm...
■ Kód:
$sztring = "%C3%81%C3%A1%C3%89%C3%A9%C3%8D%C3%AD%C3%93%C3%B3%C3%96%C3%B6%C5%90%C5%91%C3%9A%C3%BA%C3%9C%C3%BC%C5%B0%C5%B1";
echo htmlentities(utf8_decode(urldecode($sztring)));
ŐőŰű karaktereket hogy kaphatnám vissza - előre definiált érték keresése majd csere a helyes karakterre trükközés nélkül? Végső esetben ez is megtenné, akkor viszont kellene egy táblázat azokkal a karakterekkel (és a kódolás utáni értékekkel), amit az utf8 és url decode az ŰűŐő karakterekhez hasonlóan nem tud visszafejteni - ilyet nem találtam sehol.
Az ötleteket előre is köszönöm...
iconv
utf8_decode
--UTF-8
kódolt sztringISO-8859-1
karaktereit egybájtosISO-8859-1
karakterekre cseréliAz
ISO-8859-1
-ben nincsenek benne az említett karakterek, neked gondolom az kéne, hogyISO-8859-2
karakterekre kódolja.Erre javasolt az
iconv
használata, általában fel van telepítve.Tehát
utf8_decode()
helyett:iconv('UTF-8', 'ISO-8859-2', $string);
De még jobb megoldás lenne, ha
UTF-8
kódolást használnál és akkor nem kell átkódolgatni, meg nincs olyan, hogy egy karakter nincs benne a használt karakterkészletben.Ha nincs
iconv
vagy hasonló, akkor meg is írhatod a sajátUTF-8
->ISO-8859-2
átkódolót, ha csak az ékezetes karaktereket kódolod át, az nem is olyan nagy munka,UTF-8
karaktertáblából kikeresed az ékezetes betűk kódját és pl.strtr()
függvénnyel átkódolod a neki megfelelőISO-8859-2
kódra.Ja és Google keresés URL nem feltétlenül
UTF-8
-ba van kódolva, lehet, hogyISO-8859-2
-t használt a kereső mert meg lehet adni azt is Google-nek, pl.:http://www.google.com/search?hl=en&ie=iso-8859-2&q=%E1rv%EDzt%FBr%F5+t%FCk%F6rf%FAr%F3g%E9p
Szóval úgy lenne kerek a megoldás, ha feldolgoznád az URL-t, hogy van-e benne
ie
(input encoding) paraméter és annak az értéke szerint kódolnád vissza, bár elég ritka, hogy nemUTF-8
szóval nem biztos, hogy megéri.Attila
Perfect
Az URL eleve fel van dolgozva, hogy kicsaljam belőle a q= értékét, szal innentől már semmiből nem tart csekkolni az ie értékét is. Mégegyszer köszönöm, azt hittem bonyolultabb lesz :)
Honnan tudhatom milyen kodolással jön az url?
Hogyan oldjátok meg a decodolást.
Én probálom az iconv( "UTF-8", "ISO-8859-2", $honnan);
De ha nem ebben a fromában jőn akkor levág belöle. :-(
K.K.
urldecode() miért nem elég
Lehet csak nem értek hozzá. :-(
Ilyeneket találok a MySQL táblámban http://www.google.co.hu/search?hl=hu&q=klĂma tisztĂtĂĄs&btnG=Google keresĂŠs&meta=, egy ilyen PHP kód után $honnan = urldecode($_GET['honnan']);.
Köszönet ha tudsz rajtam segiteni.
K.K.
szép UTF8
Input encoding
Attila
Igen van olyan is, meg ...
Én arra gondolok hogy nem csak google, valami mindig jó megoldás nincs?
Pl. itt mit tegyek?
http://talalat.kurzor.hu/Keres?query=pĂĄrĂĄtlanĂtĂł&start=20&hitsPerPage=1
Vagy
http://www.google.com/search?num=30&hl=hu&inlang=pl&newwindow=1&q=LG lĂŠgtisztĂtĂł&lr=lang_h
Nem lehet ezt valahogy lekérdezni, hogy mivel jön?
K.K.
utf8 felismerhető
Honnan tudom hogy erre functionra küldjem.
Ha jól veszem észre ha nem UTF-( akkor tönkre teszi, tehát valami szerint válogatni kellene.
Vagy nem jól tudom/gondolom?
K.K.
nem értelmes másképp
Kapisgálom .. és.
Értelek, és ha minden igaz müködik is.
És használhatom is az icike picike céges weboldalam referer átalakitgatására?
Vagy azt azért még se?
Köszi K.K.
hát most már
Köszi!
Köszi, köszi, köszi.
K.K.
eljött a php 7.2
The /e modifier of
Egyébként már ideje volt törölni azt a szennyet, bármikor tudsz PHP kódot injektálni, ha evallal mennek a dolgok és a fejlesztő nem figyel oda eléggé, hogy mit csinál. Használd ezt helyette: http://php.net/manual/en/function.preg-replace-callback.php
iconv
Köszönöm, most úgy fest az $honnan = iconv("UTF-8", "ISO-8859-2", $honnan); megcsinálja amit szeretnék.
Sajnos nekem az eval nem igen mond sokat, igyekszem utána olvasni.
mb_convert_encoding