| | |
| Stránka: 1 z 1
| [ Príspevkov: 7 ] | |
Autor | Správa |
---|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 Bydlisko: Nitra / Bra... | Napísal emer: 31.12.2009 15:21 | |
|
Ahoj,
pomocou curl nacitam obsah napr. 4 stranok.
problem je , ze nepoznam ich kodovanie a jedna je windows-1250, dalsia utf-8 etc.
ako mam ulozit do db a nasledne vypisat text s tym, ze vsade bude dobra diakritika?
nasiel som nejake funkcie, ktore prevadzaju text z hocjakeho kodovania do jedneho, napr utf-8. take nieco by som potreboval, problem je v tom, ze tamta funkcia je od PHP6 a ja potrebujem pre PHP5
hadam som sa nevyjadril ako hotentot, dakujem za pomoc
_________________ Sorry za prelkepy |
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 31.12.2009 16:54 | |
|
Mozes pozriet fciu mb_detect_encoding(), ale moc by som tomu nedoveroval. Skus pozerat HTTP hlavicku Content-type, pripadne, ak ide o HTML stranky, hladat charset=... v <meta>. Ale spolahlivo to urcit nemozes, uz len kvoli tomu, ze Windows-1250 a ISO-8859-2 pouzivaju rovnaky rozsah bajtov (0xBE je ž alebo ľ?). Tu by som sa zameral len na kodovania pouzivane na Slovensku a napisal si fciu, ktora najprv rozhodne, ci je to UTF-8 alebo nie (to bude lahke) a potom rozhodol medzi Windows-1250 a ISO-8859-2 na zaklade konkretnych bajtov (napr. ak je tam 0x9A, asi to bude Windows-1250, lebo tento bajt sa v ISO-8859-2 nepouziva).
|
|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 Bydlisko: Nitra / Bra... | Napísal autor témy emer: 31.12.2009 16:58 | |
|
ja som uz skusal vselico, ale s tymto nemam ziadne skusenosti, cize som k nicomu nedospel.
skusal som aj mb_detect_encoding(), ale dve stranky, ktore mi vratili UTF-8 sa zobrazili rozlične.
nemas po ruke nejaku dokumentaciu k tomu co si mi tu popisoval? bo som z toho porozumel dokopy nič, a už som pregoogloval svoje nervy
a ked uz budem vediet, ci je to UTF8 alebo windows1250, ako ich prevediem to jedneoho alebo druheho kodovania? aby som mal v DB vsetko rovnake
_________________ Sorry za prelkepy |
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 31.12.2009 18:45 | |
|
Pomocou curl_getinfo sa pozrieš, či je v http hlavičke Content-Type a ak tam je, pozrieš sa, či je tam text charset. Ak tam ten text je, tak tam máš kódovanie (webový server tam zvyčajne prekopíruje kódovanie ktoré je v html súbore v head).
Netuším ale, ako sa to správa (a nechce sa mi to ani testovať) keď je tam Content-Type viac krát (to sa stáva napr. keď je webový server nastavený tak, aby odosielal predvolený typ a/alebo predvolené kódovanie).
Ak v tej hlavičke nie je Content-Type, budeš v samotnom html kóde hľadať tag meta v ktorom sú atribúty http-equiv a content a v content je charset.
Ak tam nie je ani to, tak použiješ napr. mb_detect_encoding (lepšie pár nesprávnych znakov, ako kompletný chaos).
A ak si s tým neporadí ani tá funkcia, tak použiješ nejaké predvolené kódovanie (napr windows-1250).
Nakoniec to môžeš do utf-8 previesť napr. pomocou iconv (do windows-1250 kódovania by som to nedával, keďže je tam oveľa menej možných znakov, takže to môže ten text poškodiť).
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 01.01.2010 1:11 | |
|
chrono
Tak nejak som to myslel len by som dodal, ze prehliadace podporuju aj zapis <meta charset=kodovanie>, v HTML5 uz platny. Mozes pouzit jednoduchy regexp, napriklad Kód: '/<meta[^<>]*?charset=[\'"]?([a-z0-9_-]+)/i' (nemusi byt najspravnejsi, ale mal by fungovat)
|
|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 Bydlisko: Nitra / Bra... | Napísal autor témy emer: 01.01.2010 2:32 | |
|
mohol by som vas poprosit este daco mimo temy? ked uz sme pri regur. vyrazoch (moja nocna mora), vytahujem zo stranky data z meta tagov. pomocou
Kód: preg_match_all('@name="([^"]*)" content="([^"]*)"@i', $Head, $Matches); aby som ich dostal do pola napr. array('author' => 'ja', 'keywords' => 'bla,bla'); takto to funguje, ale co tak bude zapis emta tagu namiesto Kód: <meta name="bla" content="bla"> toto Kód: <meta content="bla" name="bla"> ? prsote prehodene... da sa to nejak pichnut do toho preg_match ??
dakujem, k tomu kodovaniu sa vyjadrim zajtra, teraz sa idem vratit k oslave
_________________ Sorry za prelkepy |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
nie je to dokonale, ale mozno "nakopne":
Kód: preg_match_all("/([^\" ]*)=\"([^\"]*)\"/", $head, $matches);
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
| Stránka: 1 z 1
| [ Príspevkov: 7 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| kodovanie v HTML, XHTML, XML, CSS | 8 | 690 | 22.10.2013 17:00 asdf13 | | Kodovanie v HTML, XHTML, XML, CSS | 2 | 607 | 01.02.2008 18:26 jato | | Kodovanie v HTML, XHTML, XML, CSS | 11 | 654 | 02.11.2012 18:41 shaggy | | Kódovanie v PHP, ASP | 4 | 633 | 06.11.2007 21:13 qacer | | kodovanie v HTML, XHTML, XML, CSS | 23 | 1220 | 19.02.2009 14:46 neopagan | | kodovanie v PHP, ASP | 5 | 725 | 11.07.2007 20:02 Tominator | | kodovanie v HTML, XHTML, XML, CSS | 4 | 696 | 18.10.2009 17:04 kemci | | KÓDOVANIE v PHP, ASP | 2 | 539 | 03.11.2007 23:03 jsakac | | Kódovanie v Databázy | 3 | 789 | 14.11.2008 12:39 walther | | Kodovanie v Redakčné systémy | 1 | 612 | 09.06.2007 10:54 mokus | | Opera kodovanie v Sieťové a internetové programy | 7 | 606 | 05.04.2008 23:46 Jaro | | Kodovanie znakov v Operačné systémy Microsoft | 0 | 366 | 16.05.2010 18:20 sasori1512 | | php kodovanie v PHP, ASP | 1 | 377 | 17.11.2011 14:06 BX | | MySQL kodovanie v Databázy | 3 | 996 | 28.02.2008 14:26 emer | | Kódovanie stránky v PHP, ASP | 6 | 335 | 28.10.2012 13:05 Ďuri | | kodovanie stranky v HTML, XHTML, XML, CSS | 12 | 1095 | 01.07.2010 12:19 coldak |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|