Вот дату сразу проверяйте так:
$data = file_get_html($url);
if (!mb_detect_encoding($data, 'UTF-8', true))
{
$data=iconv("cp1251", "UTF-8//TRANSLIT//IGNORE",$data);
}
foreach($data->find($tag) as $a)
Нет, не так. Прочитайте ещё раз, что я писал про функции PHP и как надо по правильному делать.---------- Добавлено 17.11.2017 в 16:12 ----------Если все сайты на русском, то в 99,9% это или utf-8 или cp1251. Проверку надо делать так, если это НЕ UTF-8 то выполнять перекодировку с cp1251->utf8
Нет, не следовательно. Если браузер отображается нормально, значит не в этом дело.
$a->plaintext
откуда появляется? Кто его обрабатывает? Попробуйте всю страницу СРАЗУ перевести в utf8 и потом уже выдирать куски.
Где вы там про рамблер то видели?
© АО «КОРПОРАЦИЯ МСП», 2017 http://corpmsp.ru/
Нет тут проблема, что всё доверилось стандартным функциям, а они в этом деле "неалло".
Конкретно этого сайта?
Так проверяйте по этой строчке на странице:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
если нет этой строчки, то проверяйте по хедеру ответа в какой кодировке предоставляются данные.
Но никак не функциями PHP ---------- Добавлено 17.11.2017 в 14:02 ----------
как вы это смотрите? phpmyadmin последней версии? БД и таблицы точно в utf-8? При подключении к БД случаем кодировка cp1251 не выставлена?
Это распил бабла для "поддержки" малого предприятия.
Ничего не надо определять или смотреть. Берёте просто мой кусок кода и с ним работаете. Не надо функцию по определению кодировки вставлять вообще.
Ну весь сайт в win1251 в чём проблема то?! Какие там куски не в этой кодировке?
Я же дал вам код, вы сказали с ним всё ок. Тогда в чём проблема то?!
По-моему что-то там не ладное или проблема решается не с того бока.
Определение кодировки в PHP и так кривое, а уж разные куски и такие выкрутасы она будет показывать бред.