Нужно проверить, есть ли 2 слова в одной строке?

Gluk

Новичок
Нужно проверить, есть ли 2 слова в одной строке?

Как это сделать?
н.р. есть СЛОВО1 и СЛОВО2
есть несколько строк...
как проверить, есть ли эти слова в строке?

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

makRo

Guest
> А все-таки если через eregi???

А есть разница в их последовательности ?
 

Demiurg

Guest
Не используй регулярные выражения, там где можно обойтись без них.
 

Gluk

Новичок
ну а как написать через stristr???

получится не очень!!!
 

Georgy

Guest
PHP:
$word=array('word1','word2');

$string='word word word word1 word1222 word323 word2';

 if (strstr($word[1],$string)) {
   print "$word[1]!";
 }
 if (strstr($word[2],$string)) {
   print "$word[2]!";
 }

 /******************************/

 if (preg_match("/$word[1]|$word[2]/i",$string)) {
   print 'results!!!'; 
 }
http://php.net/preg
 

Gluk

Новичок
> if (preg_match("/$word[1]|$word[2]/i",$string)) {
> print 'results!!!';
> }
а если мне надо проверить есть ли сразу 2 слова в строке?
 

Demiurg

Guest
Gluk, зачем тебе регулярные выражения, если ты их не понимашь и они тормозят.
 

Gluk

Новичок
разве тормозял? тогда ладно, сделаю так:

if (strIstr($word[1],$string))
{
if (strstr($word[2],$string))
{
print "$word[2]!";
}
}
 

RomikChef

Guest
if (strIstr($word[1],$string) AND strIstr($word[2],$string))

Если не работает - проверь, что тебе возвращают обе эти функции.
и почитай про [m]setlocale[/m]
 

Gluk

Новичок
$string = "how are you? I am fine";
$word[1] = "are";
$word[2] = "am";

if (strIstr($word[1], $string) AND strIstr($word[2], $string))
{
echo ('yes!');
}
else echo ('no!');

выводит no :(
 

RomikChef

Guest
echo strIstr($word[1], $string);
echo strIstr($word[2], $string);

что выводит?

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

Georgy

Guest
PHP:
		$string = "how are you? I am fine";
		$word=array('are','am');
			if (stristr($string,$word[0]) && stristr($string,$word[1])) {
				print 'YES!';
			}

			/* в очередности аргуменов ошибались... вхождение вторым должно быть */
 

Gluk

Новичок
в общем разобрался!!! ==>>

if (preg_match("/$word[1]+$word[2](\s|\,)/i",$string)) {
print 'results!!!';
}

причем мне надо было чтобы не путались такие слова, как н.р.
do и does...
 
Сверху