Поиск подстроки в строке в php осуществляется с помощью функции strpos().
Эта функция аналогична методу indexOf() с javascript.
Пример использования:
$res = strpos("abcdefg", "c");
// $res = 2;
$res = strpos("abcdefg", "z");
// $res = false;
$res = strpos("abcdefg", "ab");
// $res = 0;
Обратите внимание, что в случае неудачного поиска, функция strpos() возвращает логическое значение false. А если строка, в которой производится поиск, начинается с подстроки, которая ищется — то функция вернет целочисленное значение 0 , то-есть позицию подстроки в стоке.
Поскольку в php выражение (0 == false) вернёт положительное значение — нужно для сравнения использовать === или !==. (0 === false) вернёт отрицательное значение, поскольку кроме значений сравниваются и типы.
Примет корректного использования:
$res = strpos($text, $word);
if($res !== false) {
// Подстрока найдена
// ...
} else {
// Подстрока не найдена
// ...
}
чёта неработает у меня. думаю там чёта перемудрёно с тройным равенством. сижу тра*&$?сь с конструкцией….
В заметке было несколько существенных ошибок. Сейчас они исправлены.
Спасибо Глебу (klgleb@bk.ru) за замечания.
if($res !== false) { легко заменяется на ! if(!$res), т.к это тоже самое, а проверка на логические значения здесь излишние.