PHP从文本文件中删除/替换字符串

PHP从文本文件中删除/替换字符串,php,preg-replace,Php,Preg Replace,如果我有一个包含名称数据的文本文件: John Ham Joe Tope Nalawas 我希望php查找Joe并将其从列表中删除。有什么想法吗 我的想法是: <?php $lines = file('user.txt'); $word = ''; $result = ''; foreach($lines as $line) { if(substr($line) == 'joe') { $result .= $word."\n"; } else {

如果我有一个包含名称数据的文本文件:

John
Ham
Joe
Tope
Nalawas
我希望php查找Joe并将其从列表中删除。有什么想法吗

我的想法是:

<?php
$lines = file('user.txt');
$word = '';
$result = '';

foreach($lines as $line) {
    if(substr($line) == 'joe') {
        $result .= $word."\n";
    } else {
        $result .= $line;
    }
}

file_put_contents('user.txt', $result);

?>
此代码不起作用,我想使用preg replace

只需使用$result=str_replace'Joe',,$line

提醒一下,这种方法在您提到的情况下会起作用,但如果有像约瑟芬这样的名字,它会产生一行:sephine

还可能需要检查:strtolower在比较像这样的字符串以说明大小写不敏感时,这很有效。 但正如前面提到的,约瑟芬也会被移除

$lines  = file('names.txt');
$search = 'joe';

$result = '';
foreach($lines as $line) {
    if(stripos($line, $search) === false) {
        $result .= $line;
    }
}
file_put_contents('names2.txt', $result);

打开文件,读取每一行并检查所需的值。substr需要两个参数,你没有收到错误/警告消息吗?我没有收到任何错误消息如果你想替换Joe,不要查找Joe在哪里使用它?你想替换为我的foreach循环吗?是的,这应该是整个foreach循环。1行,所以只需将每个$line替换为$line{$result=str_replace'joe',$line;}这样对OP没有任何作用,因为OP的文本中没有joe谢谢你提供了这个解决方案