删除包含某些单词的字符串


Delete string containing some words

如何删除文本文件中包含一些单词的所有字符串?

我试着用这个脚本来做:

$f = "somefile.txt";
$str=file_get_contents($f);
$oldMessage=$_POST['label'];
$deletedFormat=' ';
$str=str_replace("$oldMessage", "$deletedFormat",$str);
file_put_contents($f, $str);

但是我的脚本只删除一个单词,而不是整个字符串。想法吗?

这是我的解决方案:

$f = "somefile.txt";
$file = fopen ($f, 'r');
$oldMessage=$_POST['label'];
$deletedFormat=' ';
while(!feof($file)){
    $line = fgets($file);
    if (strpos($line , $oldMessage)) $arr[] = $line;
}
$str=file_get_contents($f);
foreach($arr as $needle){
    $str=str_replace($needle, $deletedFormat,$str);
}
file_put_contents($f, $str);