Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
2 / 3 / 2
Регистрация: 17.05.2013
Сообщений: 403
1

Не знаю как определить кодировку

12.11.2013, 19:40. Показов 1588. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня есть скрипт, который извлекает из странички ее мета теги и название, но в браузере, если кодировки не совпадают, выводятся иероглифы. Подставить под каждый сайт свою кодировку не вариант у меня их много и не знаю, как поменять кодировку в зависимости от полученной информации. Вот скрипт, который я использую
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
function file_get_contents_curl($url)
{
    $ch = curl_init();
 
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
 
    $data = curl_exec($ch);
    curl_close($ch);
 
    return $data;
}
 
$html = file_get_contents_curl("http://www.yandex.by/");
 
//parsing begins here:
$doc = new DOMDocument();
@$doc->loadHTML($html);
$nodes = $doc->getElementsByTagName('title');
 
//get and display what you need:
$title = $nodes->item(0)->nodeValue;
 
$metas = $doc->getElementsByTagName('meta');
 
for ($i = 0; $i < $metas->length; $i++)
{
    $meta = $metas->item($i);
    if($meta->getAttribute('name') == 'description')
        $description = $meta->getAttribute('content');
    if($meta->getAttribute('name') == 'keywords')
        $keywords = $meta->getAttribute('content');
}
 
echo "Title: $title". '<br/><br/>';
echo "Description: $description". '<br/><br/>';
echo "Keywords: $keywords";
менял я кодировку заменой строчки
PHP
1
@$doc->loadHTML($html);
на
PHP
1
@$doc->loadHTML(mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8'));
спасибо за ответ.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2013, 19:40
Ответы с готовыми решениями:

Как определить кодировку сайта?
Здравствуйте уважаемые верстальщики. Подскажите как мне определить кодировку в которой приходит...

Как определить текущую кодировку (RU/EN)?
Подскажите пожалуйста, как определить текущую кодировку (RU/EN)? Заранее благодарен.

Как определить кодировку файла?
Допустим, программа будет обрабатывать некий текстовый файл с зарание неизвестной кодировкой. Как...

Как определить кодировку в QString?
//Пытаемся своими кривыми руками генерировать символы аля ASCII for(int i = 0; i &lt;...

3
ищите меня в нирване
36 / 36 / 5
Регистрация: 23.10.2013
Сообщений: 198
12.11.2013, 19:55 2
Достоверно узнать кодировку не имея четкого указания, какая кодировка, имея лишь текст не получится. С какой-то вероятностью это можно определить по кодам используемых символов, но это далеко не 100%.. Проще создать файл настроек по каждому сайту и указывать кодировку, типа такого
PHP
1
return array('http://yondix.ru"=>'UTF-8',...);
0
Марсианин
87 / 87 / 22
Регистрация: 11.10.2012
Сообщений: 333
12.11.2013, 20:07 3
Можно попробовать mb_detect_encoding.
1
2 / 3 / 2
Регистрация: 17.05.2013
Сообщений: 403
12.11.2013, 20:53  [ТС] 4
Цитата Сообщение от MarlboroRed Посмотреть сообщение
Можно попробовать mb_detect_encoding.
все равно ничего не вышло кодировку определило пытаюсь подставить переменную ничего не вышло.

Добавлено через 14 минут
Все еще зависит от странички на которой сам код сохранил в UTF-8 , без BOM стало показывать нормально, но все равно не во всех случаях.
0
12.11.2013, 20:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2013, 20:53
Помогаю со студенческими работами здесь

Как определить кодировку текста?
Доброго времени суток. Подскажите как автоматически определить кодировку будь то русский или...

Как определить кодировку веб-страницы?
Написал парсер страниц. но некоторые страницы с русским текстом отображаются не правильно в textBox...

Как определить кодировку текста с кириллицей
Имеем коротенький текстовый файл. Грузим его (вставляем кусок через буфер обмена) в TextBox....

Как определить кодировку bat-файла?
а как проверить кодировку batфайла с помощью другого batника и если скажем совпадает то продолжить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru