Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Preuzimanje sa drugog sajta, Charset problem.

[es] :: PHP :: PHP za početnike :: Preuzimanje sa drugog sajta, Charset problem.

[ Pregleda: 2461 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

djordjevic_i
Ivan Djordjevic
Tf Cacak
Cacak

Član broj: 212093
Poruke: 176
*.dynamic.isp.telekom.rs.

Sajt: www.codeart.in.rs


+2 Profil

icon Preuzimanje sa drugog sajta, Charset problem.27.11.2011. u 00:25 - pre 150 meseci
Pozdrav, preuzimam informacije o vremenu sa jednog sajta, DOM+XPath. To je OK, medjutim, na mom sajtu se ne prikazuju naša slova: č,ć,š,č,ž,đ. U čemu li je problem? Na bilo kom delu strane, osim u delu gde se prikazuju podaci o vremenu, prikaz slova funkcioniše-
Ivan Djordjevic
 
Odgovor na temu

Mr. Bond
Beograd

Član broj: 126551
Poruke: 124
*.adsl-1.sezampro.rs.

Sajt: https://rs.linkedin.com/i..


+14 Profil

icon Re: Preuzimanje sa drugog sajta, Charset problem.27.11.2011. u 00:45 - pre 150 meseci
Jesu slova sastavni deo toga što parsiraš? Na koji način vraćaš output parsiranog dela i ostatka sajta? Kroz jedan response ili vučeš AJAX-om?

U suštini svodi se na UTF-8 samo je pitanje zašto ga tu nema.
Bad programmers worry about the code. Good programmers worry about data
structures and their relationships.
 
Odgovor na temu

Goran Rakić
Beograd

Moderator
Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: Preuzimanje sa drugog sajta, Charset problem.27.11.2011. u 08:14 - pre 150 meseci
Ako tvoj i drugi sajt nisu u istom kodnom skupu, moraš da rekodiraš tekst u letu. Otvori tu drugu stranu i pogledaj koji je kodni skup, a onda iskoristi iconv() za rekodiranje. Pretpostavljajući da je tvoj sajt u UTF-8, a taj drugi u CP1250:
Code (php):
$string = iconv('CP1250', 'UTF-8//IGNORE', $string);

http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

djordjevic_i
Ivan Djordjevic
Tf Cacak
Cacak

Član broj: 212093
Poruke: 176
*.dynamic.isp.telekom.rs.

Sajt: www.codeart.in.rs


+2 Profil

icon Re: Preuzimanje sa drugog sajta, Charset problem.27.11.2011. u 09:24 - pre 150 meseci
Code:

echo "<table class=weather_table ><tr>";
$dom = new DOMDocument();
@$dom->loadHTMLFile('http://www.aladin.info/vremens...RXX0032-%C4%8Ca%C4%8Dak-Srbija');
$xpath = new DOMXPath($dom);
$informacija= $xpath->query("//div[@class='span8 last']//li");
foreach($informacija as $info)
  echo '<td>'.$info->textContent.'</td></tr>';
  echo "</table>";

Ovaj deo koji mi odrađuje celokupan posao, da ne tupim. Kodni raspored je isti na oba sajta, utf-8. Na jednom računaru mi se vidi dobro, a na drugom ne, a u pitanju su 2 verzije Wamp servera, odnosno PHP 5.4 i PHP 5.3.5. Na računaru gde je verzija 5.3.5 se vidi ok, a na drugom ne :(


[Ovu poruku je menjao djordjevic_i dana 27.11.2011. u 10:35 GMT+1]
Ivan Djordjevic
Prikačeni fajlovi
 
Odgovor na temu

djordjevic_i
Ivan Djordjevic
Tf Cacak
Cacak

Član broj: 212093
Poruke: 176
*.dynamic.isp.telekom.rs.

Sajt: www.codeart.in.rs


+2 Profil

icon Re: Preuzimanje sa drugog sajta, Charset problem.28.11.2011. u 09:39 - pre 150 meseci
Da li neko ima bilo kakvu ideju?
Ivan Djordjevic
 
Odgovor na temu

Zlatni_bg
Nikola S
Beograd

Član broj: 65708
Poruke: 4420
*.dynamic.sbb.rs.



+498 Profil

icon Re: Preuzimanje sa drugog sajta, Charset problem.28.11.2011. u 17:30 - pre 150 meseci
Prvo, nisi nam rekao da li si poslusao Gorana i isprobao njegovu ideju?

Drugo, sumnjas na to da je problem razlika u PHP verzijama. Ono sto svima uvek pricam je da idu logickim putem i tako resavaju probleme. Ok, PHP verzija 5.4 ne radi nesto sto radi PHP 5.3.5 verzija. Pogledajmo changelog PHP 5.4 verzije. Ono sto sam ja nasao je ovo:

Code:
Changed default value of "default_charset" php.ini option from ISO-8859-1 to
· UTF-8.


I jos dosta izmena sto se charseta tice. Pogledaj svoj php.ini i pogledaj da tamo nema nekih gresaka. Isto tako baci pogled i na changelog.
THE ONLY EASY DAY WAS YESTERDAY
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-7.sezampro.rs.



+33 Profil

icon Re: Preuzimanje sa drugog sajta, Charset problem.28.11.2011. u 17:50 - pre 150 meseci
Da li u tom HTML-u kojeg fetch-uješ sigurno postoji head sekcija i onaj tag za definisanje charset-a u njoj?

Ako uopšte nema head sekcije, dodaj je:
Code:
$content = str_ireplace('<html>', '<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /></head>', $content );

A ako je ima, onda samo dodaj taj meta-tag:
Code:
$content = str_ireplace('</head>', '<meta http-equiv="content-type" content="text/html; charset=utf-8" /></head>', $content );

To naravno uradi pre nego što kreiraš DOMDocument instancu. Dakle prvo fetch-uj sadržaj te stranice, pa ga onda import-uj sa loadHTML().
 
Odgovor na temu

djordjevic_i
Ivan Djordjevic
Tf Cacak
Cacak

Član broj: 212093
Poruke: 176
*.dynamic.isp.telekom.rs.

Sajt: www.codeart.in.rs


+2 Profil

icon Re: Preuzimanje sa drugog sajta, Charset problem.28.11.2011. u 19:24 - pre 150 meseci
Ej, pa napisah da je kodni skup isti na oba sajta.
Nikola, postoji head sekcija sa tagom za definisanje charset-a, pokusao sam to sto si mi rekao, ali ne vredi, opet dobijam isti rezultat.
Ivan Djordjevic
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-7.sezampro.rs.



+33 Profil

icon Re: Preuzimanje sa drugog sajta, Charset problem.28.11.2011. u 20:55 - pre 150 meseci
A šta dobijaš u $dom->encoding nakon što učitaš taj HTML?

Meni je inače uvek za potrebe raznih web scraping-a koje sam radio prolazilo to postavljanje encoding-a preko meta tag-a. Probaj možda da u head sekciji ostaviš samo taj meta tag za charset, tako što ćeš npr. nekim regexp-om replace-ovati <head>.*</head>, sa <head><meta http-equiv="content-type" content="text/html; charset=utf-8" /></head>, pa onda takav string učitati u DOMDocument.

A ako ni to ne upali, probaj onda da ga zezneš sa ovim hack-om:
Code:
$doc = new DOMDocument();
$doc->loadHTML('<?xml encoding="UTF-8">' . $html);
$doc->removeChild($doc->firstChild); //uklanjanje XML_PI_NODE elementa
$doc->encoding = 'UTF-8';
 
Odgovor na temu

djordjevic_i
Ivan Djordjevic
Tf Cacak
Cacak

Član broj: 212093
Poruke: 176
*.dynamic.isp.telekom.rs.

Sajt: www.codeart.in.rs


+2 Profil

icon Re: Preuzimanje sa drugog sajta, Charset problem.28.11.2011. u 21:32 - pre 150 meseci
U $dom->encoding dobijam utf-8. Isprobao sam, opet isto. Buni me to sto na drugom racunaru, vidim normalno sve karaktere, ali, nema veze.
Ivan Djordjevic
 
Odgovor na temu

Mr. Bond
Beograd

Član broj: 126551
Poruke: 124
*.adsl-1.sezampro.rs.

Sajt: https://rs.linkedin.com/i..


+14 Profil

icon Re: Preuzimanje sa drugog sajta, Charset problem.28.11.2011. u 21:37 - pre 150 meseci
Čudno al opet ... nije encoding nešto što se ponaša kako mu dune. Aj da probamo onda drugi pristup - koje su ti razlike između ta dva kompa? U smislu browser-a i OS-a? (mada je bitniji browser al otkud znam - da probamo).
Bad programmers worry about the code. Good programmers worry about data
structures and their relationships.
 
Odgovor na temu

djordjevic_i
Ivan Djordjevic
Tf Cacak
Cacak

Član broj: 212093
Poruke: 176
*.dynamic.isp.telekom.rs.

Sajt: www.codeart.in.rs


+2 Profil

icon Re: Preuzimanje sa drugog sajta, Charset problem.28.11.2011. u 22:32 - pre 150 meseci
Na identičnim browserima na oba računara, prikazuje se različito, odnosno ie, ff, chrome na jednom ne prepoznaju karaktere, a na drugom da. u lokalu, gde je verzija php-a 5.3.5 se vidi dobro, na istom računaru, prikaz sa weba ne prikazuje dobro. nikako mi ne ide u glavu, medjutim, ako preuzmem podatke sa neke druge lokacije, gde je isto postavljen kodni skup, prikazuje normalno slova.
samo on pravi problemaladin
Ivan Djordjevic
 
Odgovor na temu

[es] :: PHP :: PHP za početnike :: Preuzimanje sa drugog sajta, Charset problem.

[ Pregleda: 2461 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.