[ Príspevkov: 7 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Kodovanie

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181 | 181
Bydlisko: Nitra / Bra...
NapísalOffline : 31.12.2009 15:21 | Kodovanie

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
Offline

Čestný člen
Čestný člen
Kodovanie

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34 | 34
Bydlisko: Brno
NapísalOffline : 31.12.2009 16:54 | Kodovanie

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).


Offline

Užívateľ
Užívateľ
Kodovanie

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Napísal autor témyOffline : 31.12.2009 16:58 | Kodovanie

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
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0 | 0
NapísalOffline : 31.12.2009 18:45 | Kodovanie

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ť).


Offline

Čestný člen
Čestný člen
Kodovanie

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34 | 34
Bydlisko: Brno
NapísalOffline : 01.01.2010 1:11 | Kodovanie

chrono
Tak nejak som to myslel :D 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)


Offline

Užívateľ
Užívateľ
Kodovanie

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Napísal autor témyOffline : 01.01.2010 2:32 | Kodovanie

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 :D


_________________
Sorry za prelkepy
Offline

Správca fóra
Správca fóra
Kodovanie

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 01.01.2010 11:36 | Kodovanie

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
 [ Príspevkov: 7 ] 


Kodovanie



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Kodovanie

v CMS

1

695

09.06.2007 10:54

mokus

V tomto fóre nie sú ďalšie neprečítané témy.

kodovanie

v Frontend

8

900

22.10.2013 17:00

asdf13

V tomto fóre nie sú ďalšie neprečítané témy.

Kodovanie

v Frontend

2

690

01.02.2008 18:26

jato

V tomto fóre nie sú ďalšie neprečítané témy.

Kodovanie

v Frontend

11

796

02.11.2012 18:41

shaggy

V tomto fóre nie sú ďalšie neprečítané témy.

Kódovanie

v Backend

4

713

06.11.2007 21:13

qacer

V tomto fóre nie sú ďalšie neprečítané témy.

kodovanie

v Frontend

23

1370

19.02.2009 14:46

neopagan

V tomto fóre nie sú ďalšie neprečítané témy.

kodovanie

v Backend

5

818

11.07.2007 20:02

Tominator

V tomto fóre nie sú ďalšie neprečítané témy.

kodovanie

v Frontend

4

791

18.10.2009 17:04

kemci

V tomto fóre nie sú ďalšie neprečítané témy.

KÓDOVANIE

v Backend

2

631

03.11.2007 23:03

jsakac

V tomto fóre nie sú ďalšie neprečítané témy.

Kódovanie

v Databázy

3

879

14.11.2008 12:39

walther

V tomto fóre nie sú ďalšie neprečítané témy.

Kódovanie stránky

v Frontend

8

2000

24.03.2010 7:03

rooobertek

V tomto fóre nie sú ďalšie neprečítané témy.

PoznamkovyBlok Kodovanie

v Ostatné programy

6

695

10.05.2011 20:39

walther

V tomto fóre nie sú ďalšie neprečítané témy.

Záhadné kódovanie

v Backend

13

787

12.10.2008 19:33

Blackshadow

V tomto fóre nie sú ďalšie neprečítané témy.

Opera kodovanie

v Sieťové programy

7

694

05.04.2008 23:46

Jaro

V tomto fóre nie sú ďalšie neprečítané témy.

Kodovanie znakov

v Windows

0

449

16.05.2010 18:20

sasori1512

V tomto fóre nie sú ďalšie neprečítané témy.

php kodovanie

v Backend

1

453

17.11.2011 14:06

BX



© 2005 - 2026 PCforum, edited by JanoF