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 :: Не работает функция strripos
Вот такой код, и получается что он возвращает значение false, но почему? ведь написано что эта функция регистронезависимая , а если поставить заглавную букву вот так: "Программное обеспечение" то функция сработает. Пробовал переводить в нижний регистр, но все ровно проблема не ушла, может кто нибудь подскажет в чем тут дело?
----- Так было, так есть и так будет
Champion
Отправлено: 14 Марта, 2011 - 18:32:32
Активный участник
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
setlocale(LC_ALL, 'кодировка'). И mb_strripos, а не просто strripos, если бногобайтовая кодировка
vanicon
Отправлено: 14 Марта, 2011 - 18:51:42
Частый посетитель
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
нашел выход поставил кодировку в строках: mb_internal_encoding('UTF-8'); и подставил mb приставку и функция заработала
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
В условии написано: Если в строке нету либо "защита", либо в ней нету "безопасность".
vanicon
Отправлено: 14 Марта, 2011 - 20:02:31
Частый посетитель
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
Ну так то в роде правильно, нужно вот что если в строке есть слово защита либо есть слово безопасность то и тд
----- Так было, так есть и так будет
Champion
Отправлено: 14 Марта, 2011 - 20:06:32
Активный участник
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
vanicon пишет:
нужно вот что если в строке есть слово защита либо есть слово безопасность
Champion пишет:
В условии написано: Если в строке нету либо "защита", либо в ней нету "безопасность".
vanicon
Отправлено: 14 Марта, 2011 - 20:12:06
Частый посетитель
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
if (mb_strripos($text, 'безопасность') <> false || mb_strripos($text, 'защита') <> false) {
echo 'что то есть';
}
теперь, верно?
----- Так было, так есть и так будет
sersh
Отправлено: 22 Апреля, 2011 - 09:05:09
Новичок
Покинул форум
Сообщений всего: 1
Дата рег-ции: Апр. 2011
Помог: 0 раз(а)
Еще одна неприятность с strripos: когда ищу слово, находящееся в начале строки вот такой фразы: "doors.txt;1", то strripos его не находит!
$comment = "doors.txt;1";
if (strripos($comment, 'doors')) {...
Вышел из положения: $comment = " " . $comment;
EuGen
Отправлено: 22 Апреля, 2011 - 09:07:04
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Почитайте описание функции. Если текст находится в начале строки, то вернется 0 (так как он будет соответствовать первому вхождению). То есть то, как Вы написали - некорректно. Ваше условие для таких случаев вернет неверный результат.
Корректно:
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.