Задать вопрос
teplenev
@teplenev

Слетает кодировка при скачке страницы через php?

Собственно пытаюсь получить страницу с professionali.ru, получаю дрянь типа «ёСЏ Александр Захаров РњРѕСЃРєРІР°, Р РѕСЃСЃРёСЏ Дмитрий Щелкунл


Как исправить?

&lt;?php<br/>
echo &quot;Сдираем первые 10 страниц с Профессионалов&quot;;<br/>
include 'strip_tags_smart.php';<br/>
for ($x=0; $x&lt;2; $x++) {<br/>
 $page = file_get_contents ( 'http://www.professionali.ru/~'.$x);<br/>
 iconv(&quot;UTF-8&quot;, &quot;Windows-1251&quot;, $page);<br/>
 $page = strip_tags ($page);<br/>
 $page = strip_tags_smart( stripslashes($page));<br/>
 echo $page.&quot;<hr/>&quot;;<br/>
};<br/>
<br/>
  • Вопрос задан
  • 2942 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
$page = iconv(«UTF-8», «Windows-1251», $page);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Это происходит, поскольку на сайте, с которого происходит загрузка — кодировка cp1251, а функция конвертирования используется неверно — перепутаны аргументы.
Цитата с php.net:

string iconv ( string $in_charset , string $out_charset , string $str )

У вас же — исходная кодировка — UTF-8, а результирующая — cp1251. Нужно наоборот.
Ответ написан
homm
@homm
Это происходит потому, что iconv возвращает новую строку в качестве результата, а не модифицирует исходную. А вы его (результат) игнорируете.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы