如果它有一个字符串,删除行

时间:2015-05-21 17:40:16

标签: php

    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 :(得分:0)

您可以使用strpos功能。以下是相关问题:How do I check if a string contains a specific word in PHP?

答案 1 :(得分:0)

虽然您对explode的想法可行,但有更简单的方法。您可以使用strpos在字符串中查找子字符串。如果没有找到子字符串,则返回false。如果您想要不区分大小写,则可以使用strtolower(或strtoupper)将原始字符串全部小写(或大写):

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

答案 2 :(得分:0)

在php中使用strpos()函数,如果该特定字符串有一个位置,则意味着您的字符串具有该特定的单词或字符。

根据您的要求,只需查看一个简单的解决方案

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

注意:

"\n"这里仅用于表示新行,它也可以是不同语言中不同的换行符操作符更改,例如在html中它是"<br />"