Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Klasa DOMDocument - problem z kodowaniem
Forum PHP.pl > Forum > PHP
ladovnik
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
NuLL
Sprobuj ustawic kodowanie dla dokument. DOMDocument ma publiczna wlasnoc $encoding smile.gif

Pozatym Tidy w PHP5 jest troche bardziej uprzejme w kwestiach naprawiania HTMLa.
ladovnik
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?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.