如果我有一个包含姓名数据的文本文件:
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
答案 0 :(得分:0)
只需使用$result = str_replace('Joe','',$line);
提醒一下,这种方法适用于你提到的情况,但是如果有像#34; Joesephine&#34;它会产生线:sephine
同样可能需要查看:strtolower()
比较这样的字符串以解决不区分大小写http://php.net/manual/en/function.strtolower.php
答案 1 :(得分:0)
这很有效。
但如上所述,也将删除Joesephine
$lines = file('names.txt');
$search = 'joe';
$result = '';
foreach($lines as $line) {
if(stripos($line, $search) === false) {
$result .= $line;
}
}
file_put_contents('names2.txt', $result);