DOM & utf8

skomoroh2

Новичок
DOM & utf8

вот такой код( исходник в utf8 ):
PHP:
<? 
$html = "<html><body>привет<br></body></html>"; 
$doc = new DOMDocument(); 
$doc->loadHTML($html); 
$new =  $doc->saveHTML(); 
echo $new; 
?>
выдает в консоли( убунта ) следущее:
PHP:
<html><body>&ETH;&iquest;&Ntilde;&#128;&ETH;&cedil;&ETH;&sup2;&ETH;&micro;&Ntilde;&#130;<br> </body></html>
вопрос: как получить русские буквы на выходе?
 

Farsh

~ on ~ high ~ wave ~
$output = utf8_decode(html_entity_decode($doc->saveHTML(), ENT_QUOTES, "utf-8"));
Вообще мой совет - не юзать saveHTML , он какой-то паленый с кириллицей :)
saveXML() поприятней .
 

skomoroh2

Новичок
сделал так:

$charset = "utf8";
$html = file_get_contents( "html/1" );
$html = iconv( "cp1251", $charset, $html);

$config = array(
"char-encoding" => $charset
);
$tidy = tidy_parse_string($html, $config, $charset );
$tidy->cleanRepair();
$body = tidy_get_body($tidy)->value;

$html = '<html><head><meta http-equiv="content-type" content="text/html; charset='. $charset. '"></head>'. $body. "</html>";
$dom = @DOMDocument::loadHTML($html);

изврат конечно, но работает =)

-~{}~ 26.06.08 15:57:

еще вопрос:

есть объект DOMElement, как получить в строку все его содержимое вместе с тегами?
 

Farsh

~ on ~ high ~ wave ~
То что я написал выше - тоже должно работать .
Чтоб получить строку с его содержимым - смотрим опять же на мое последнее предложение в предыдущем посте .
 

Nick Mitin

Новичок
Автор оригинала: Farsh
То что я написал выше - тоже должно работать .
Чтоб получить строку с его содержимым - смотрим опять же на мое последнее предложение в предыдущем посте .
<?php
$pageDom = new DomDocument();
$html = mb_convert_encoding($html, 'HTML-ENTITIES', "UTF-8");
@$pageDom->loadHTML($html);

?>

и все в шоколаде.
 
Сверху