Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как решить проблема скодировкой при использовании file или file_get_contents

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Webtest
Отправлено: 26 Августа, 2014 - 12:13:28
Post Id


Посетитель


Покинул форум
Сообщений всего: 286
Дата рег-ции: Июнь 2014  


Помог: 0 раз(а)




Здравствуйте, подскажите пожалуйста, почему если я захватываю какой-нибудь сайт на русском языке с помощью file или file_get_contents, то все русские символы отображаются как ромбики: ����������� ������� ���������� ������, ������� ����� ����������� ���������� ���������� �����.
Кодировка документа через мета - ютф-8, в пхп поставить интернал инкодинг - ютф-8.
 
 Top
kuller
Отправлено: 26 Августа, 2014 - 13:49:59
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009  


Помог: 2 раз(а)




а кодировку самого файла проверяли?
 
 Top
dcc0
Отправлено: 26 Августа, 2014 - 21:04:55
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




Можно поиграться с преобразованием кодировки:
функция iconv.

Близко к теме:
http://www.php.su/forum/topic.ph...80&topic=804

P.S.
Очень старая, но интересная запись на тему определения кодировки:
http://habrahabr[dot]ru/post/107945/

Там, кстати, в комментариях человек и скриптик приводил для опр. кодировок.
Вот можно доработать и определять кодировку в каждой строке:

PHP:
скопировать код в буфер обмена
  1. <?
  2.   $arr = file("http://forum.php.su/topic.php?forum=71&topic=15043&v=#1409076295");
  3. function ar($arr) {
  4.  
  5.   for($i = 0; $i < count($arr); $i++)
  6.   {
  7.     $m = $arr[$i];
  8.         echo $m;
  9. echo get_encoding($m);
  10.          }
  11.  
  12. }
  13.  
  14. ar($arr);
  15.  
  16.  
  17.     function get_encoding($str){
  18.         $cp_list = array('utf-8', 'windows-1251', 'KOI8-RU', 'KOI8-U');
  19.         foreach ($cp_list as $k=>$codepage){
  20.             if (md5($str) === md5(iconv($codepage, $codepage, $str))){
  21.                 return $codepage;
  22.             }
  23.         }
  24.         return null;
  25.     }
  26.  
  27.  
  28. ?>

Наверное, можно и в отдельных строках менять кодировку, если есть в этом необходимость.

(Отредактировано автором: 26 Августа, 2014 - 22:35:46)



-----
Март 2021. Бросил программирование
 
 Top
esterio
Отправлено: 27 Августа, 2014 - 11:35:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




строкы в ПХП набор байтов. вот в какой кодировке пришли строкы - в такой они там и будут. И не важно скрипт у вас в UTF-8 или нет
iconv должен вам помочь
 
 Top
dcc0
Отправлено: 27 Августа, 2014 - 13:00:32
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




Сейчас с близкой ситуацией столкнулся.
Нужно было вывести с помощью file() текстовый документ и разбить на
несколько массивов, в каждом из которых значение - это подстрока.

Пишу все правильно - не разбивает.
Сохраняю текстовый документ в кодировке без BOM - все работает.

(Отредактировано автором: 27 Августа, 2014 - 13:01:38)



-----
Март 2021. Бросил программирование
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB