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 :: Поиск вхождения при неизвестной кодировке.

 PHP.SU

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


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

> Описание: кириллического
snikers987
Отправлено: 14 Августа, 2012 - 12:04:25
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




А есть ли какой нибудь более менее универсальный способ поиска совпадений в документах с разной кодировкой?
Или хотя бы для самых распространенных windows-1251 и utf-8.
Стандартные средства php типа iconv(), mb_convert_encoding() не дают желаемого результата..
Спасибо.


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
Stierus Супермодератор
Отправлено: 14 Августа, 2012 - 12:30:03
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


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




Найти кодировку документа (для основных кодировок, есть куча готовых функций) -> привести к единой кодировке -> искать в уже известной единой кодировке
 
My status
 Top
snikers987
Отправлено: 14 Августа, 2012 - 13:20:14
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




Stierus пишет:
-> привести к единой кодировке ->


iconv() ?


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
EuGen Администратор
Отправлено: 14 Августа, 2012 - 13:25:18
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Отрывок кода для определения кодировки:
PHP:
скопировать код в буфер обмена
  1.     protected function _detect_encoding($sData)
  2.     {
  3.         foreach ($this->rgCharsets as $item)
  4.         {
  5.             $sTest = iconv($item, $item.'//IGNORE', $sData);
  6.             if(md5($sTest) == md5($sData))
  7.             {
  8.                 return $item;
  9.             }
  10.         }
  11.         return false;
  12.     }

При этом
PHP:
скопировать код в буфер обмена
  1.     protected $rgCharsets=array(
  2.         'UTF-8',
  3.         'Windows-1251'
  4.     );

- после определения кодировки сконвертировать ее в единую (как сказали выше). Затем искать.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
snikers987
Отправлено: 14 Августа, 2012 - 19:29:01
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




Спасибо, дошло.


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 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