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
Форумы портала PHP.SU :: Версия для печати :: проверить на наличии слова
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » проверить на наличии слова

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

1. xhugo - 25 Июня, 2011 - 13:27:10 - перейти к сообщению
например есть текст "hello man", и есть массив слов array('hello','test');
как можно проверить на наличии этих слов в тексте? не сразу всех, нужно чтобы один из них только содержался,если нашло >1 то false
2. OrmaJever - 25 Июня, 2011 - 13:54:46 - перейти к сообщению
3. xhugo - 25 Июня, 2011 - 14:04:22 - перейти к сообщению
знаю, там проверяет только на одно слово в тексте,
а мне нужно одно слово из массива слов,ни все сразу.
если делать strpos($text,array('hello','test');
то он ищет hello И test, а мне нужно hello ИЛИ test
4. OrmaJever - 25 Июня, 2011 - 14:36:08 - перейти к сообщению
xhugo пишет:
там проверяет только на одно слово

xhugo пишет:
а мне нужно одно слово

А?!
PHP:
скопировать код в буфер обмена
  1. $a = array('hello','test');
  2. $str = 'hello man';
  3. forach($a as $v) if(strpos($v, $str)) {
  4.   $is = true;
  5.   break;
  6. }

на глаз накидал Улыбка
5. xhugo - 25 Июня, 2011 - 15:59:49 - перейти к сообщению
и если текст будет содержать "hahatest" то вернет true, нужно чтобы только именно test искал,без поиск внутри слов..
6. OrmaJever - 25 Июня, 2011 - 17:22:19 - перейти к сообщению
тогда регулярка
PHP:
скопировать код в буфер обмена
  1. $a = array('hello','test');
  2. $str = 'hello man';
  3. forach($a as $v) if(preg_match('#\s'.$v.'\s#i', $str) {
  4.   $is = true;
  5.   break;
  6. }

 

Powered by ExBB FM 1.0 RC1