Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.01.2018, 21:29
Профессор
Отправить личное сообщение для wadim Посмотреть профиль Найти все сообщения от wadim
 
Регистрация: 20.01.2014
Сообщений: 150

Получение метатега 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');


Кодировка не работает.

Последний раз редактировалось wadim, 13.01.2018 в 00:02.
Ответить с цитированием
  #2 (permalink)  
Старый 13.01.2018, 02:13
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

И зачем это mb_convert_encoding($value_title,'HTML-ENTITIES','UTF-8')?
Ответить с цитированием
  #3 (permalink)  
Старый 13.01.2018, 08:49
Профессор
Отправить личное сообщение для wadim Посмотреть профиль Найти все сообщения от wadim
 
Регистрация: 20.01.2014
Сообщений: 150

В смысле зачем? Если спрашиваю - значит нужно. Я думаю что такое тема кодировка понятна. В $value_title абракадабра, мне нужно чтобы русские слова были читабельны. Хотя бы для просмотра это нужно, там стоит так же вопрос как сравнивать слова в разных кодировках.
Ответить с цитированием
  #4 (permalink)  
Старый 13.01.2018, 09:04
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

А что в UTF не читаются и зачем в HTML-сущности преобразовывать? Уж если не получается, то не мешало бы сначала выяснить кодировка у исходника.
Ответить с цитированием
  #5 (permalink)  
Старый 13.01.2018, 10:35
Профессор
Отправить личное сообщение для wadim Посмотреть профиль Найти все сообщения от wadim
 
Регистрация: 20.01.2014
Сообщений: 150

У исходника разная кодировка может быть, так как сайты и на windows 1251 и на UTF-8 могут быть. А что в UTF не читаются? - не понял вопроса. Я пытаюсь в UTF-8 перевести. Зачем в HTML-сущности преобразовывать? - это Вы про loadHTMLFile($url);? Ну так мне нужно, мож Вы другую архитектуру знаете? Напишите, буду благодарен.
Ответить с цитированием
  #6 (permalink)  
Старый 13.01.2018, 11:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от wadim
сайты и на windows 1251 и на UTF-8 могут быть
Ну так определите кодировку исходника и только потом если требуется такая операция, то iconv(). Второй параметр функции mb_convert_encoding() указывает кодировку, в которую требуется перекодировать, а не то, что вы думаете. А третий параметр как раз указывает кодировку исходника, может быть и массивом, а может быть и опущен.

Так во что вы пытаетесь перекодировать? Даже с учетом того, что вы ошибаетесь, найдите хотя бы один сайт, в котором есть ключевые слова требующие HTML-сущностей.
Ответить с цитированием
  #7 (permalink)  
Старый 13.01.2018, 12:55
Профессор
Отправить личное сообщение для wadim Посмотреть профиль Найти все сообщения от wadim
 
Регистрация: 20.01.2014
Сообщений: 150

Все понял что Вы сказали, но ни чего не помогло. Исходник в 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);
Но тут все правильно, этот код мне нужен.
Ответить с цитированием
  #8 (permalink)  
Старый 13.01.2018, 13:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от wadim
Я не пытаюсь ключевые слова перекодировать в HTML-сущности
mb_convert_encoding($value_title,'HTML-ENTITIES','UTF-8') - это значение $value_title из UTF-8 в HTML-ENTITIES. Читайте документацию.

Сообщение от wadim
Тут вопрос возник зачем вообще преобразовывать UTF-8 в UTF-8, и так по русски должно выводится.
Естественно возникает, это пустое и бесполезное занятие.

URL с чего вы пытаетесь получить приведите.
Ответить с цитированием
  #9 (permalink)  
Старый 13.01.2018, 13:26
Профессор
Отправить личное сообщение для wadim Посмотреть профиль Найти все сообщения от wadim
 
Регистрация: 20.01.2014
Сообщений: 150

URL любой может быть. Я взял с произвольного сайта документ и записал себе в файл:

<title> Стратегия игра </title>

Дальше прочел этот файл через URL.
Ответить с цитированием
  #10 (permalink)  
Старый 13.01.2018, 15:40
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Понятно теперь о каких проблемах речь. Если кодировка источника не указывается, то распознавание ее может быть некорректное. Различные примеры можно посмотреть к примеру тут.

К примеру возьмем эту страницу, заголовок ее получим как ПолученР...., то есть 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-форум
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение страницы в переменную. FlyPROJet Общие вопросы Javascript 1 07.02.2013 08:57
Как в Objective-J отправить запрос на получение RSS ленты? yarutinkv Библиотеки/Тулкиты/Фреймворки 0 05.03.2012 17:00
Переодическое получение ответа от сервера demoniqus AJAX и COMET 6 22.06.2010 16:09
Получение в JavaScript значений переменных, посланных методом POST Ratibor Redoran Общие вопросы Javascript 5 08.06.2010 16:36
Получение текстового содержимого из всех вложенных DOM EmDmAl Events/DOM/Window 8 02.12.2009 23:38