UTF8 проблемы при работе с DOM Object в PHP - PullRequest
2 голосов
/ 19 августа 2011

У меня есть некоторые текстовые + графические данные UTF8, которые необходимо обработать.

Весь мой код находится в одном файле;Вот полный код:

<?php
echo "<html xmlns=\"http://www.w3.org/1999/xhtml\">
<head><meta http-equiv='Content-Type' content='text/html; charset=utf-8' /></head><body>";

$article_header="აბგდევზთ<img src='some_url/img/15.jpg' alt=''>აბგდევზთ";
echo "1".$article_header."<br>";
$doc = new DOMDocument();
$doc->loadHTML($article_header);
$imgs = $doc->getElementsByTagName('img');
foreach ($imgs as $img) {
 if(!$img->getAttribute('class')){
$src = $img->getAttribute('src');
$newSRC = str_replace('/img/', '/mini/', $src);
$img->setAttribute('src', $newSRC);
$img->removeAttribute('width'); 
$img->removeAttribute('height');
$article_header = $doc->saveHTML();
            }
                        }
echo "2".$article_header."<br>";
echo "</body></html>";
?>

Как вы видите, я эхо данных 2 раза.

  • В первый раз, как и ожидалось, текст и изображение выводятся.

  • Во второй раз, он приносит измененное изображение, как и ожидалось.Но текст становится поврежденным, например: áƒáƒ‘გდევზთ

Есть ли способ решить эту проблему?

1 Ответ

5 голосов
/ 19 августа 2011

Ребята, я нашел решение !!!!!!!!!! Хурааа !!!! :)))) Для тех, кто столкнется с этой проблемой в будущем, вот код

$article_header = mb_convert_encoding($article_header, 'HTML-ENTITIES', "UTF-8");

Это нужно сделать перед загрузкой HTML и все работает нормально !!!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...