Как найти подстроку в строке в php

Я хочу найти строку внутри строки, например:

  abcbabababbbacc  //Initial string

И мне нужно выяснить, содержит ли он abc или нет, если да, то заменить его другими символами. Я написал этот код:

 $check = false;
    if(strpos($set, "abc"))
    {
        $set = preg_replace("abc", "aab", $set);
        $check = true;
    }

    return $check;

Но на выходе я всегда получаю false. Кто-нибудь может мне помочь с этим?

Поскольку abc находится в первой позиции вашей строки, strpos() вернет ноль, что интерпретируется как false. Вы должны использовать if (strpos($set, "abc") === false), чтобы проверить, что это действительно false.

KIKO Software 11.04.2018 13:29

Подобные вопросы являются причиной того, что уже существует большой красный прямоугольник с предупреждением в документации на strpos. Теперь было бы хорошо, если бы новички начали читать эти документы ...

feeela 11.04.2018 13:31

Кроме того, ваш preg_replace недействителен. Регулярное выражение в PHP требует разделителей. Также, если вам не нужно регулярное выражение (которое в данном случае не требуется, потому что вы не делаете с ним ничего особенного), не используйте его, используйте php.net/manual/en/function.str-replace.php.

chris85 11.04.2018 14:35
1
3
43
1

Ответы 1

    $check = false;
    if(strpos($set, "abc") !== false)// you need to chage
    {
        $set = preg_replace("abc", "aab", $set);
        $check = true;
    }

    return $check;

Не могли бы вы подробнее рассказать о том, что делает ваш код? (из обзора)

www139 12.04.2018 00:16

Другие вопросы по теме