У вас правильный код. Но проблема здесь:
Объяснение:
strpos
функция возвращает индекс, содержащий строку. И в вашем случае он возвращает как индекс строки. И 0 означает ложь в программировании. Вот почему ваш код выполняет еще часть.
В случае, если ваша строка будет в положении 1 или 2 и так далее, тогда код будет работать нормально. Но это будет ложно, так как строка соответствия находится на 0-й позиции.
Для будущей перспективе, вы должны поместить значение в переменную, как это:
$str1 = "subidubidu";
$str2 = "subi";
$pos = strpos($str1, $str2);
if ($pos != '' || $pos !== false) {
echo 'Found it';
} else {
echo 'Not found.';
}
Вы читали [документы] (http://php.net/manual/en/function.strpos. PHP)? –