永发信息网

php fopen后使用正则式删除不含指定字符串的行

答案:2  悬赏:0  手机版
解决时间 2021-03-18 14:47
  • 提问者网友:抽煙菂渘情少年
  • 2021-03-18 03:23
如题,php fopen后使用正则式删除不含指定字符串的行。

文本文件里内容若干行文本,例:
aa aaasd asda
asdas abcda da
www abcd2q tq3g34gqgrg
ewrwe abc sdf sdf
adsf;lgmbefa ksd

其中2、3、4行文本中均含有字符串abc,求使用正则式的相关php代码进行文本处理,删除不含字符串abc的行。谢谢!
最佳答案
  • 五星知识达人网友:雪起风沙痕
  • 2021-03-18 03:54
没必要用正则,效率低,用strpos匹配字符串就可以了。


$fp = fopen($path,'a+');
$str = "";
while(!feof($fp)){
$line = fgets($fp);
    if(false !==strpos($line,'abc')){
$str .= $line;//如果匹配到abc就把它放到连接到字符串上
    }
}
fclose($fp);

// 得到$str的内容之后就可以直接覆盖写入到之前的文件里面去了

file_put_contents($path,$str);
全部回答
  • 1楼网友:怙棘
  • 2021-03-18 04:31
你好! $a=file(文件); foreach($a as $k=>$v) { if(preg_match('/(abc)/',$v) { unset($a[$k]); } } file_put_contents('文件',$a); 仅代表个人观点,不喜勿喷,谢谢。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯