• PHP文件操作之,插入某行,删除某行,获取行号


     1 #在需要查找的内容后一行新起一行插入内容
     2     function insertAfterTarget($filePath, $insertCont, $target)
     3     {
     4         $result = null;
     5         $fileCont = file_get_contents($filePath);
     6         $targetIndex = strpos($fileCont, $target); #查找目标字符串的坐标
     7 
     8         if ($targetIndex !== false) {
     9             #找到target的后一个换行符
    10             $chLineIndex = strpos(substr($fileCont, $targetIndex), "\n") + $targetIndex;
    11             if ($chLineIndex !== false) {
    12                 #插入需要插入的内容
    13                 $result = substr($fileCont, 0, $chLineIndex + 1) . $insertCont . "\n" . substr($fileCont, $chLineIndex + 1);
    14                 $fp = fopen($filePath, "w+");
    15                 fwrite($fp, $result);
    16                 fclose($fp);
    17             }
    18         }
    19     }
    20 
    21     #删除内容所在的某一行
    22     function delTargetLine($filePath, $target)
    23     {
    24         $result = null;
    25         $fileCont = file_get_contents($filePath);
    26         $targetIndex = strpos($fileCont, $target); #查找目标字符串的坐标
    27 
    28         if ($targetIndex !== false) {
    29             #找到target的前一个换行符
    30             $preChLineIndex = strrpos(substr($fileCont, 0, $targetIndex + 1), "\n");
    31             #找到target的后一个换行符
    32             $AfterChLineIndex = strpos(substr($fileCont, $targetIndex), "\n") + $targetIndex;
    33             if ($preChLineIndex !== false && $AfterChLineIndex !== false) {
    34                 #重新写入删掉指定行后的内容
    35                 $result = substr($fileCont, 0, $preChLineIndex + 1) . substr($fileCont, $AfterChLineIndex + 1);
    36                 $fp = fopen($filePath, "w+");
    37                 fwrite($fp, $result);
    38                 fclose($fp);
    39             }
    40         }
    41     }
    42 
    43     #获取某段内容的行号
    44     /**
    45      * @param $filePath
    46      * @param $target   待查找字段
    47      * @param bool $first   是否再匹配到第一个字段后退出
    48      * @return array
    49      */
    50     function getLineNum($filePath, $target, $first = false)
    51     {
    52         $fp = fopen($filePath, "r");
    53         $lineNumArr = array();
    54         $lineNum = 0;
    55         while (!feof($fp)) {
    56             $lineNum++;
    57             $lineCont = fgets($fp);
    58             if (strstr($lineCont, $target)) {
    59                 if($first) {
    60                     return $lineNum;
    61                 } else {
    62                     $lineNumArr[] = $lineNum;
    63                 }
    64             }
    65         }
    66         return $lineNumArr;
    67     }
  • 相关阅读:
    myBatis之事务管理
    关于Spring事务回滚的问题
    mysql中的多行查询结果合并成一个
    mybatis传递参数到mapping.xml
    EasyUI 中 DataGrid 控件 列 如何绑定对象中的属性
    写给java开发的运维笔记
    SpringMVC学习系列(11) 之 表单标签
    eclipse 安装svn插件
    linux(centos)搭建SVN服务器
    JavaServer Faces 2.0 can not be installed解决方案
  • 原文地址:https://www.cnblogs.com/zemliu/p/2551541.html
Copyright © 2020-2023  润新知