Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Klasa DOMDocument - problem z kodowaniem, Nie trawi polskich znaków
ladovnik
post
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 25.11.2008
Skąd: Polska

Ostrzeżenie: (10%)
X----


Witam. Kodowanie na swojej stronie mam w iso-8859-2. Użyłem klasy DOMDocument w celu poprawy źródła HTML (Zamyka niedomknięte tagi, które pozostawia wiele moich redaktorów w newsach). Jednak po przeniesieniu strony na inny serwer okazało się, że tam klasa ta powoduje błąd - nie akceptuje mojego kodowania, wywalając błąd:

Cytat
Warning: DOMDocument::saveHTML() [domdocument.savehtml]: output conversion failed due to conv error in core.php on line 72

Warning: DOMDocument::saveHTML() [domdocument.savehtml]: Bytes: 0xC4 0x20 0x6F 0x70 in core.php on line 72


Dodam, że gdy ze źródła strony usunąłem kod Java Script, w którym miałem stringi zawierające polskie znaki, to klasa ta działała poprawnie nawet na tym innym serwerze. Jednak muszę posiadać te kody Java Script, więc trzeba zrobić tak, aby i z nimi klasa sobie radziła.

A oto kod, poprzez jaki korzystałem z klasy:
  1. function tidyHTML($str) {
  2. $dom=new DOMDocument;
  3. @$dom->loadHTML($str);
  4. $dom->formatOutput=true;
  5. $str=$dom->saveHTML();
  6.  
  7. return $str;
  8. }


Tę funkcję oczywiście wykorzystywałem do parsowania wygenerowanego źródła strony.

Pozdrawiam,
ladovnik

Ten post edytował ladovnik 15.01.2010, 21:57:56
Go to the top of the page
+Quote Post
NuLL
post
Post #2





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

Ostrzeżenie: (0%)
-----


Sprobuj ustawic kodowanie dla dokument. DOMDocument ma publiczna wlasnoc $encoding smile.gif

Pozatym Tidy w PHP5 jest troche bardziej uprzejme w kwestiach naprawiania HTMLa.


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
ladovnik
post
Post #3





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 25.11.2008
Skąd: Polska

Ostrzeżenie: (10%)
X----


Dopisałem przed linijką:
  1. @$dom->loadHTML($str);

Linijkę:
  1. $dom->encoding='iso-8859-2';


Lecz niestety, nadal to samo.

Skoro na starym serwerze akceptowało kodowanie, to może to jest kwestia jakichś ustawień serwera?

Ten post edytował ladovnik 16.01.2010, 10:09:19
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 23:04