2012-06-09 2 views
0

Так что в настоящее время у меня есть проблема. У меня есть этот фрагмент кода, чтобы увидеть, если фраза присутствует в другой фразе:Проблема разности PHP strstr

if(strstr($matches[1], $query)) 

Так, например, если:

$matches[1] = "arctic white" 
$query = "arctic" 

В приведенном выше случае, код будет обнаружить, что фраза «арктический «во фразе« арктический белый », хотя я хочу, чтобы она обнаруживала, что она внутри и внутри слов, а не только фразы.

Например, если:

$matches[1] = "antarctica" 
$query = "arctic" 

В этом случае сценарий не будет обнаружить слово «арктическую» в «Антарктиду», хотя оно и есть. Поэтому мне было интересно, как я могу отредактировать if(strstr($matches[1], $query)), чтобы он обнаружил ВСЕ слова, в которых есть $ query content? Пожалуйста помоги!

+0

Это уже делает: http://ideone.com/eKGgd. –

+0

вы должны использовать 'strpos()' вместо этого. –

+0

Он уже отлично распознает. Я предполагаю, что вы действительно хотите найти слова, содержащие содержимое запроса $? –

ответ

2

Вы можете использовать preg_match() для гораздо лучшего результата. Preg_match не включает только регулярные выражения. Он может делать именно то, что вам нужно. т.е .:

if (preg_match("/arctic/i", "antarctica")) { 
    // it is there do something 
} else { 
    // it is not there do something else 
} 

Кстати, маленький "я" означает, что чувствительность к регистру, проверьте PHP руководство больше примеров: http://php.net/manual/en/function.preg-match.php

+0

Он поправил свой пост. Он хочет слова, вы должны показать ему, как собирать матчи. –

+0

, но он показывает только один ключ массива -> значение. Он имеет в виду, что ключ будет содержать длинный текст, который нужно искать? Просьба уточнить. – Milan

0

использование strpos()

пример:

$word = "antarctica"; 
$find = "arctic"; 

$i = strpos($word, $find); 

if($i === false) 
{ 
echo "not found"; 
} 

else 
{ 
echo "found"; 
} 
Смежные вопросы