Получение метатега keywords
Есть код php. New - редактировал: keywords уже не нужен, заменил на title:
$dom= new DOMDocument('1.0'); @$dom->loadHTMLFile($url); $title= $dom->getElementsByTagName('title'); $value_title= $title->item(0)->nodeValue; $value_title= mb_convert_encoding($value_title,'HTML-ENTITIES','UTF-8'); Кодировка не работает. |
И зачем это mb_convert_encoding($value_title,'HTML-ENTITIES','UTF-8')?
|
В смысле зачем? Если спрашиваю - значит нужно. Я думаю что такое тема кодировка понятна. В $value_title абракадабра, мне нужно чтобы русские слова были читабельны. Хотя бы для просмотра это нужно, там стоит так же вопрос как сравнивать слова в разных кодировках.
|
А что в UTF не читаются и зачем в HTML-сущности преобразовывать? Уж если не получается, то не мешало бы сначала выяснить кодировка у исходника.
|
У исходника разная кодировка может быть, так как сайты и на windows 1251 и на UTF-8 могут быть. А что в UTF не читаются? - не понял вопроса. Я пытаюсь в UTF-8 перевести. Зачем в HTML-сущности преобразовывать? - это Вы про loadHTMLFile($url);? Ну так мне нужно, мож Вы другую архитектуру знаете? Напишите, буду благодарен.
|
Цитата:
Так во что вы пытаетесь перекодировать? Даже с учетом того, что вы ошибаетесь, найдите хотя бы один сайт, в котором есть ключевые слова требующие HTML-сущностей. |
Все понял что Вы сказали, но ни чего не помогло. Исходник в UTF-8, два варианта не помогли:
$value_title= iconv("UTF-8", "UTF-8", $value_title); $value_title= mb_convert_encoding($value_title, 'UTF-8', 'UTF-8'); Тут вопрос возник зачем вообще преобразовывать UTF-8 в UTF-8, и так по русски должно выводится. Попробовал так: $value_title= iconv("UTF-8", "windows-1251", $value_title); так как windows-1251 у меня часто срабатывало в других проектах. Вообще ни чего не выводит. Ключевые слова пытаюсь перекодировать. Я не пытаюсь ключевые слова перекодировать в HTML-сущности, наверно Вы имеете в виду это: @$dom->loadHTMLFile($url); Но тут все правильно, этот код мне нужен. |
Цитата:
Цитата:
URL с чего вы пытаетесь получить приведите. |
URL любой может быть. Я взял с произвольного сайта документ и записал себе в файл:
<title> Стратегия игра </title> Дальше прочел этот файл через URL. |
Понятно теперь о каких проблемах речь. Если кодировка источника не указывается, то распознавание ее может быть некорректное. Различные примеры можно посмотреть к примеру тут.
К примеру возьмем эту страницу, заголовок ее получим как ÐолÑÑенР...., то есть utf-8 (детектирование кодировки покажет, что это utf) будет распознано как latin-1 (windows-1252). Вернем нормальную кодировку: $dom = new DOMDocument(); libxml_use_internal_errors(true); $dom->loadHTMLFile(\'https://javascript.ru/forum/misc/72167-poluchenie-metatega-keywords.html\'); $title = $dom->getElementsByTagName('title')->item(0)->textContent; echo $title; //результат ÐолÑÑение меÑаÑега keywords - Javascript-ÑоÑÑм //восстановим $title = mb_convert_encoding($title, 'windows-1252', 'utf-8'); echo $title; //результат Получение метатега keywords - Javascript-форум |
Часовой пояс GMT +3, время: 07:50. |