подстрока в строке PHP?

134
20 марта 2018, 02:23

Есть у меня строка, например "Рога и копыта отзывы". мне необходимо средствами PHP получить из нее строку без слова "отзывы". Мой код:

$string = 'Рога и копыта отзывы';
if(stristr($string, 'отзывы') === FALSE) {
    echo '"отзывы" не найдена в строке';
}else{
    $string = stristr($string, 'отзывы',true);
    echo $string;
}

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

Answer 1

Можно в одну строку решить:

$string = 'Рога и копыта отзывы';
$need = 'отзывы';
!preg_match("/$need/", $string) ?: print "'$need' найдена в строке";

И тогда, если искомое слово 'отзывы' есть в строке, то в браузере вы увидите сообщение: 'отзывы' найдена в строке.

А для удаления слова из любой части строки, можно использовать preg_replace():

$string = ' отзывы Рога и копыта';
$need = 'отзывы';
echo preg_replace("/\s?$need\s?/", '', $string); // Рога и копыта
Answer 2

Можно конечно сделать это через preg_match, но самый простой метод использовать str_replace:

<?php
   $string = 'Рога и копыта отзывы';
   $str = trim(str_replace('отзывы','',$string));
   echo $str;
?>
READ ALSO
Принцип создания dashboard

Принцип создания dashboard

Добрый деньИзучаю laravel, пробую сделать простой дашборд, у которого есть несколько страничек с таблицами и графиками

152
Как различать input text?

Как различать input text?

Есть таблица учета товара где есть возможность продать товар в нужном количествеПроблема в том что input type text с одинаковыми классами и именами

131
Ошибка: Headers already sent in

Ошибка: Headers already sent in

Такая ссылка есть

190
phpbrew не хочет ничего собирать?

phpbrew не хочет ничего собирать?

вот то что выполняю в терминале -

229