Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Закрытая темаСоздание новой темыСоздание опроса

> preg_match_all и кодировка
dadli  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



ХОЧУ СТАТь "ЭКСПЕРТОМ", НО ПОКА НЕ БЛИЖЕ
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 828
Пользователь №: 26787
На форуме: 14 лет, 9 дней
Карма: 50

Не курю:
14 лет, 5 месяцев, 10 дней


хочу посчитат на каком месте стоит в строке кажди подчерkирование, для етого исползую preg_match_all(); но сталкивался с проблемои с кодировкои

если в строке латинские букви, то всо норм

preg_match_all("#_#u","d_o_c_",$arr,PREG_OFFSET_CAPTURE);


получаем: 1, 3, 5

а если руские букви:

preg_match_all("#_#u","д_о_к_",$arr,PREG_OFFSET_CAPTURE);


уже резултат такои 1, 5, 8
модификатор u, не помагает,

сушествует какоита способ исправит ето ?



Спустя 10 часов, 16 минут, 47 секунд (15.11.2011 - 11:40) Winston написал(а):
Дело в том, что в юникоде, русские символы занимают от 2 байт, потому тебе и показывает такие позиции... (Хм.. не думал, что в preg_match_all позиция в тексте считается по-байтово)
$str = iconv("UTF-8", "WINDOWS-1251", "д_о_к_");
preg_match_all("#_#", $str, $arr,PREG_OFFSET_CAPTURE);
echo '<pre>'.print_r($arr,1);


Свернутый текст
Array
(
[0] => Array
(
[0] => Array
(
[0] => _
[1] => 1
)

[1] => Array
(
[0] => _
[1] => 3
)

[2] => Array
(
[0] => _
[1] => 5
)

)

)

Спустя 18 минут, 23 секунды (15.11.2011 - 11:58) dadli написал(а):
спасибо Winston помагал smile.gif


--------------------


когда чарли чаплин принимал участие в конкурсе: "клон чарли чаплинов", то чарли занимал третю позицию.

PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Закрытая темаСоздание новой темыСоздание опроса