LEOnidUKG

LEOnidUKG
Рейтинг
1784
Регистрация
25.11.2006
Должность
PHP
Интересы
Программирование

Вот дату сразу проверяйте так:

$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)

joost:
Если сделать определение кодировки, то дает UTF-8 и ASCII на разные куски текста

Нет, не так. Прочитайте ещё раз, что я писал про функции PHP и как надо по правильному делать.

---------- Добавлено 17.11.2017 в 16:12 ----------

Если все сайты на русском, то в 99,9% это или utf-8 или cp1251. Проверку надо делать так, если это НЕ UTF-8 то выполнять перекодировку с cp1251->utf8

следовательно - не весь текст страницы вин1251

Нет, не следовательно. Если браузер отображается нормально, значит не в этом дело.

$a->plaintext

откуда появляется? Кто его обрабатывает? Попробуйте всю страницу СРАЗУ перевести в utf8 и потом уже выдирать куски.

stardel:
При чём тут распил?) Пилить то что?)

Где вы там про рамблер то видели?

© АО «КОРПОРАЦИЯ МСП», 2017 http://corpmsp.ru/

Корпорация МСП осуществляет свою деятельность в качестве института, развития в сфере малого и среднего предпринимательства (МСП) в целях координации оказания субъектам МСП поддержки, предусмотренной Федеральным законом от 24.07.2007 №209-ФЗ «О развитии малого и среднего предпринимательства в Российской Федерации».

Sitealert:
Поразительное упорство - зная, что там не cp1251, пытаться конвертировать из cp1251 🤪

Нет тут проблема, что всё доверилось стандартным функциям, а они в этом деле "неалло".

ок
делаю
$a->plaintext = iconv("windows-1251","UTF-8//TRANSLIT//IGNORE",$a->plaintext);
в БД русские буквы Продажа

Конкретно этого сайта?

парсинг разных сайтов идет

Так проверяйте по этой строчке на странице:

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

если нет этой строчки, то проверяйте по хедеру ответа в какой кодировке предоставляются данные.

Но никак не функциями PHP

---------- Добавлено 17.11.2017 в 14:02 ----------

в БД русские буквы Продажа

как вы это смотрите? phpmyadmin последней версии? БД и таблицы точно в utf-8? При подключении к БД случаем кодировка cp1251 не выставлена?

Это распил бабла для "поддержки" малого предприятия.

joost:
там указано windows-1251
а определяется как ASCII
может в этом проблема?

Ничего не надо определять или смотреть. Берёте просто мой кусок кода и с ним работаете. Не надо функцию по определению кодировки вставлять вообще.

Ну весь сайт в win1251 в чём проблема то?! Какие там куски не в этой кодировке?

Я же дал вам код, вы сказали с ним всё ок. Тогда в чём проблема то?!

По-моему что-то там не ладное или проблема решается не с того бока.

Определение кодировки в PHP и так кривое, а уж разные куски и такие выкрутасы она будет показывать бред.

Всего: 31599