[ Príspevkov: 7 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Kodovanie

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
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: 4110
Témy: 30 | 30
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ý: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
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: 1719
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: 4110
Témy: 30 | 30
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ý: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
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: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 01.01.2010 11:36 | Kodovanie

nie je to dokonale, ale mozno "nakopne":
Kód:
preg_match_all("/([^\" ]*)=\"([^\"]*)\"/", $head, $matches);


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
 [ 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 HTML, XHTML, XML, CSS

4

474

18.10.2009 17:04

kemci

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

KÓDOVANIE

v PHP, ASP

2

334

03.11.2007 23:03

jsakac

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

Kódovanie

v Databázy

3

579

14.11.2008 12:39

walther

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

Kodovanie

v Redakčné systémy

1

408

09.06.2007 10:54

mokus

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

kodovanie

v HTML, XHTML, XML, CSS

8

283

22.10.2013 17:00

asdf13

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

Kodovanie

v HTML, XHTML, XML, CSS

2

378

01.02.2008 18:26

jato

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

Kodovanie

v HTML, XHTML, XML, CSS

11

370

02.11.2012 18:41

shaggy

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

Kódovanie

v PHP, ASP

4

422

06.11.2007 21:13

qacer

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

kodovanie

v HTML, XHTML, XML, CSS

23

826

19.02.2009 14:46

neopagan

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

kodovanie

v PHP, ASP

5

502

11.07.2007 20:02

Tominator

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

MySQL kodovanie

v Databázy

3

735

28.02.2008 14:26

emer

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

Kódovanie stránky

v PHP, ASP

6

201

28.10.2012 13:05

Ďuri

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

kodovanie stranky

v HTML, XHTML, XML, CSS

12

807

01.07.2010 12:19

coldak

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

Zle kodovanie?

v Databázy

10

1299

28.01.2008 11:54

Matho

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

XML kodovanie

v HTML, XHTML, XML, CSS

9

826

03.06.2009 12:31

Blackshadow

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

Kódovanie stránky

v HTML, XHTML, XML, CSS

8

1507

24.03.2010 7:03

rooobertek



© 2005 - 2017 PCforum, edited by JanoF