preg_match_all работает по-разному

makis

Новичок
preg_match_all работает по-разному

Здравствуйте.
Есть такой код:
PHP:
$string = "*Новое поколение датчиков производства компании Freescale Semiconductor для сенсорного управления. Датчики для погрузки.
Наслаждайтесь датчиками.
датчикидатчикидатчики";
$word_arr = array("Датчики", "Датчиков", "Датчиках", "Датчиками", "Датчикам");

for ($i=0; $i<count($word_arr); $i++) {
	preg_match_all("|$word_arr[$i]|i", $string, $matches);
	$cnt += count($matches[0]);
}
echo $cnt;
Локально тестю - выводится 7. На удалённом сервере выводится 1. В чём может быть проблема?
 

spiverg

Новичок
проблема с локалью на удаленном сервере, поэтому модификатор i не работает.
Введи в терминале locale -a посмотри список локалей на сервере, там должна быть локаль для кодировки с которой ты работаешь например ru_RU.cp1251

з.ы. используй foreach для перебора массива
 

makis

Новичок
К сожалению у меня нет доступа к терминалу сервера. Есть только ФТП и доступ к PHPMyAdmin.
Однако установка
PHP:
setlocale(LC_CTYPE, 'ru_RU.CP1251');
всё исправила. Спасибо за подсказку!
 
Сверху