Удаление строки, если в ней есть строка

1
    this is a sentence oil on a line
    this is another sentence
    another one
    hey oil sentence

У меня есть эти 4 предложения, что я хочу сделать, это проверить, имеет ли это предложение (каждое предложение на линии) слово oil. И если это произойдет, я удалю все предложение.

Итак, я закончу это:

    this is another sentence
    another one

линии, включая oil, были удалены.

У меня возникла идея exploding эти строки в массив. Затем используйте foreach для проверки oil. Удаление элемента, а затем imploding.

Но мне было интересно, есть ли более быстрые способы?

Теги:

3 ответа

0

используйте функцию strpos() в php, если эта конкретная строка имеет позицию, то это означает, что ваша строка имеет это конкретное слово или символ.

Просто взгляните на простое решение согласно вашему требованию

 foreach( explode($wholesentence,"\n" ) as $yourstrimg )
    if (strpos($yourstrimg,'oil') !== false) {
        echo 'oil';
    }
}

Заметка:

"\n" просто используется для обозначения новой строки здесь, это может быть и другое изменение оператора разрыва строки на разных языках, например, в html это "<br/>"

0

Хотя ваша идея с explode будет работать, есть более простые способы. Вы можете использовать strpos для поиска подстроки внутри строки. Если подстрока не найдена, она вернет false. Если вы хотите нечувствительность к регистру, вы можете для исходной строки быть строчным (или верхним) с помощью strtolower (или strtoupper):

if( strpos(strtolower($string),'oil')!==false )
{
    // string found
}
else
{
    // string not found
}
0

Вы можете использовать функцию strpos. Вот связанный с этим вопрос: как проверить, содержит ли строка определенное слово в PHP? ,

Ещё вопросы

Сообщество Overcoder
Наверх
Меню