Intereting Posts
Получение числовых символов из строки MySQL DateDiff в разделе Where? Разделить массив на основе данных массива Две формы – одна кнопка отправки? Отправка электронной почты с помощью laravel, но не распознающая переменную Подтверждение подписи сервера покупок в приложении для Android, используя php OpenSSL PHPMailer использовать Gmail как SMTP-сервер. Не удалось подключиться к узлу SMTP. Ошибка Mailer: ошибка SMTP: не удалось подключиться к SMTP-хосту Объединение двух SQL-запросов PDO Создавая сайт для обмена видео, нужен видеоплеер Создание быстрой семантической поисковой системы MySQL для частных статей с нуля Почему mcrypt_encrypt () помещает двоичные символы в конец моей строки? PHP CLI имеет задержку в несколько секунд Управление пользовательским кодом с помощью автозагрузчика Composer? Добавить привязку к перенаправлению Laravel назад Как установить плагин PHP IDE для Eclipse непосредственно из среды Eclipse?

Проблема php с русским языком

Я получаю страницу в utf-8 с русским языком, используя curl. если я эхо текст, это хорошо. то я использую такой код

$dom = new domDocument; /*** load the html into the object ***/ @$dom->loadHTML($html); /*** discard white space ***/ $dom->preserveWhiteSpace = false; /*** the table by its tag name ***/ $tables = $dom->getElementsByTagName('table'); /*** get all rows from the table ***/ $rows = $tables->item(0)->getElementsByTagName('tr'); /*** loop over the table rows ***/ for ($i = 0; $i <= 5; $i++) { /*** get each column by tag name ***/ $cols = $rows->item($i)->getElementsByTagName('td'); echo $cols->item(2)->nodeValue; echo '<hr />'; } 

$ html содержит русский текст. после него строка echo $ cols-> item (2) -> nodeValue; отображать текст ошибки, а не русский. Я пытаюсь iconv, но не работаю. есть идеи?

Related of "Проблема php с русским языком"

Я предлагаю использовать mb_convert_encoding перед загрузкой страницы UTF-8.

     $ dom = новый DomDocument ();   
     $ html = mb_convert_encoding ($ html, «HTML-ENTITIES», «UTF-8»);
     @ $ Dom-> loadHTML ($ HTML);

ИЛИ иначе вы могли бы попробовать это

     $ dom = новый DomDocument ('1.0', 'UTF-8');
     @ $ Dom-> loadHTML ($ HTML);
     $ dom-> preserveWhiteSpace = false;
     ..........
     echo html_entity_decode ($ cols-> item (2) -> nodeValue, ENT_QUOTES, "UTF-8");
     .......... 

DOM не может распознать кодировку HTML. Вы можете попробовать что-то вроде:

 $doc = new DOMDocument(); $doc->loadHTML('<?xml encoding="UTF-8">' . $html); // taken from http://php.net/manual/en/domdocument.loadhtml.php#95251 

mb_convert_encoding ($ html, «HTML-ENTITIES», «UTF-8»);

То же самое с PHPQuery.

PS Я использую phpQuery :: newDocument ($ html);

вместо $ dom-> loadHTML ($ html);