加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 在它们的开头删除具有特定模式的行

发布时间:2020-12-13 17:20:26 所属栏目:PHP教程 来源:网络整理
导读:我有一个大约25,000行的文本文件.大约525kb. 有些行在开头有随机文本. 有些人用长串分号. 其他一些只有三个分号,然后在同一行上有一个空格和可选的更多文本.这些是我想要删除的行. 这是一个样本…. ;;; Updated Time 20120706122706 ;;; Generic DEveloper O
我有一个大约25,000行的文本文件.大约525kb.

有些行在开头有随机文本.
有些人用长串分号.

其他一些只有三个分号,然后在同一行上有一个空格和可选的更多文本.这些是我想要删除的行.

这是一个样本….

;;; Updated Time 20120706122706
   ;;; Generic DEveloper Output

   ;;; Some Random Comments
   ;;; I got some more...
   ;;; Yet another uneeded line
   ;;; Thanks for using StackOverflow <https://stackoverflow.com>,or...
   ;;; Not.

   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Banana Production

   [Data_Release_Version]
   Version=12586
   Released=20120706122706

   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Baseline Properties

   [BaseLineProperties]
   Comment=BaselineProperties

– – – 等等.

一旦它到达第一行4或更多;在线上,我需要文件的其余部分,因为没有“;;;”行.

如果它不匹配“;;;”,试图快速找到一些东西,而不是阅读所有内容并将其写回.

文件是ASCII(可能是UTF-8)文本类型文件.

有任何想法吗?

感谢您的时间,帮助和知识.

解决方法

我建议使用file_get_contents()并将变量中的文件内容保存为字符串,然后在每个换行符中使用explode()字符串,然后在foreach循环中,使用preg_match()检查行是否以3个分号和一个空格,如果它有剂量,则把它放在另一个名为$output的数组中.在foreach之后,implode()$输出并添加换行符并使用file_put_contents()将其打印在另一个文件中.希望这可以帮助 :-)

码:

<?php
$string = file_get_contents($filename);
$array = explode("n",$string);
foreach($array as $arr) {
    if(!(preg_match("^;;;s",$arr))) {
        $output[] = $arr;
    }
}

$out = implode("n",$output);
file_put_contents($path,$out);
?>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读