Глоссарий - чувствительность к регистру

Глоссарий - чувствительность к регистру

от Алексей Карпенко -
Количество ответов: 6

При любых параметрах глоссария, слова чувствительны к регистру. Подозреваю на регулярные выражения, никто не встречался с данной проблемой?

Moodle 1.6.3+

В ответ на Алексей Карпенко

Re: Глоссарий - чувствительность к регистру

от Алексей Карпенко -

Сорри за флуд, ответ нашелся почти сразу:

В версии 1.8 lib/filterlib.php строка 168

$modifiers = ($linkobject->work_casesensitive) ? 's' : 'isu'; // works in unicode mode!

u - в 1.6.3 данный модификатор отсутсвует.

В ответ на Алексей Карпенко

Re: Глоссарий - чувствительность к регистру

от Dmitry Pupinin -
За нечувствительность к регистру в регулярных выражениях отвечает модификатор 'i'
В ответ на Dmitry Pupinin

Re: Глоссарий - чувствительность к регистру

от Алексей Карпенко -

>За нечувствительность к регистру в регулярных выражениях отвечает модификатор 'i'

ага, а за UTF-8 'u', соответственно за нечувствительность к регистру при UTF-8 должно быть 'iu' ;)

В ответ на Алексей Карпенко

Re: Глоссарий - чувствительность к регистру

от Sergey Ab -

Таки не работает нечувствительность к регистру. Стоит версия 1.9. Linux, апач запускаю с локалью ru_RU.utf8.

И еще -- есть ли какие-нить моды или настройки, которые бы "автосвязывали" словарные слова не тупо по буквам, а по-русски -- со склонениями, числами и т.п.? Для английского это вроде работает?

В ответ на Sergey Ab

Re: Глоссарий - чувствительность к регистру

от Sergey Ab -

Хм. Выходит, что баг где-то в PHP...

$text = 'Иванов иванов иВанов';
print preg_replace('/иванов/isu', '<b>иван</b>', $text);

меняется строго 'иванов', причем меняется даже если убрать 'isu'.

В ответ на Sergey Ab

Re: Глоссарий - чувствительность к регистру

от Sergey Ab -

Решилась проблема. PHP ставил из пакетов, равно как и все остальное. Оказалось, что PHP собран с поддержкой внешней PCRE библиотеки. Пересобрал PCRE с ключами --enable-utf8 --enable-unicode-properties, брал версию 7.6. И все заработало (в итоге в текстах стали нормально связываться слова из глоссария без учета регистра).