- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Нет, не следовательно. Если браузер отображается нормально, значит не в этом дело.
$a->plaintext
откуда появляется? Кто его обрабатывает? Попробуйте всю страницу СРАЗУ перевести в utf8 и потом уже выдирать куски.
Если сделать определение кодировки, то дает UTF-8 и ASCII на разные куски текста
Если сделать определение кодировки, то дает UTF-8 и ASCII на разные куски текста
Нет, не так. Прочитайте ещё раз, что я писал про функции PHP и как надо по правильному делать.
---------- Добавлено 17.11.2017 в 16:12 ----------
Если все сайты на русском, то в 99,9% это или utf-8 или cp1251. Проверку надо делать так, если это НЕ UTF-8 то выполнять перекодировку с cp1251->utf8
Simple HTML DOM Parser
$data = file_get_html($url);
foreach($data->find($tag) as $a)
---------- Добавлено 17.11.2017 в 17:17 ----------
если это НЕ UTF-8 то выполнять перекодировку с cp1251->utf8
всего документа?
сделал так
$html = iconv("windows-1251","UTF-8//TRANSLIT//IGNORE",file_get_contents($url));
$data = str_get_html($html);
а как правильно средствами пхп определять кодировку документа по урлу страницы?
Вот дату сразу проверяйте так:
$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)
$data это объект - правильно определит?
А... у вас там же объект сразу же.
$page = file_get_contents($url);
if (!mb_detect_encoding($page , 'UTF-8', true))
{
$page =iconv("cp1251", "UTF-8//TRANSLIT//IGNORE",$page );
}
$data=str_get_html($page)
foreach($data->find($tag) as $a)
---------- Добавлено 17.11.2017 в 16:35 ----------
p.s. лучше страницы забирать через curl
лучше страницы забирать через curl
дайте правильный код для этого (если есть и не сложно)
и почему лучше?
дайте правильный код для этого (если есть и не сложно)
и почему лучше?
Потому, что сайт поставит защиту, без user-agent не пускать и всё, не будет скрипт работать или проверка будет покукам и т.д.
function curl_gets($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_ENCODING, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE,"cookie.txt");
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.89 Safari/537.36 OPR/49.0.2725.39');
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$page=curl_gets($url);
if (!mb_detect_encoding($page , 'UTF-8', true))
{
$page =iconv("cp1251", "UTF-8//TRANSLIT//IGNORE",$page );
}
$data=str_get_html($page)
foreach($data->find($tag) as $a)