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

来源:互联网 发布:apache benchmark 编辑:程序博客网 时间:2024/06/06 04:53
#在需要查找的内容后一行新起一行插入内容     function insertAfterTarget($filePath, $insertCont, $target)     {         $result = null;         $fileCont = file_get_contents($filePath);          $targetIndex = strpos($fileCont, $target); #查找目标字符串的坐标            if ($targetIndex !== false) {              #找到target的后一个换行符             $chLineIndex = strpos(substr($fileCont, $targetIndex), "\n") + $targetIndex;             if ($chLineIndex !== false) {                 #插入需要插入的内容                 $result = substr($fileCont, 0, $chLineIndex + 1) . $insertCont . "\n" . substr($fileCont, $chLineIndex + 1);                 $fp = fopen($filePath, "w+");                 fwrite($fp, $result);                 fclose($fp);             }         }19     }      #删除内容所在的某一行     function delTargetLine($filePath, $target)     {         $result = null;25         $fileCont = file_get_contents($filePath);         $targetIndex = strpos($fileCont, $target); #查找目标字符串的坐标          if ($targetIndex !== false) {             #找到target的前一个换行符             $preChLineIndex = strrpos(substr($fileCont, 0, $targetIndex + 1), "\n");             #找到target的后一个换行符             $AfterChLineIndex = strpos(substr($fileCont, $targetIndex), "\n") + $targetIndex;             if ($preChLineIndex !== false && $AfterChLineIndex !== false) {                 #重新写入删掉指定行后的内容                 $result = substr($fileCont, 0, $preChLineIndex + 1) . substr($fileCont, $AfterChLineIndex + 1);                 $fp = fopen($filePath, "w+");                 fwrite($fp, $result);                 fclose($fp);             }         }     }      #获取某段内容的行号     /**      * @param $filePath      * @param $target   待查找字段      * @param bool $first   是否再匹配到第一个字段后退出      * @return array      */     function getLineNum($filePath, $target, $first = false)     {         $fp = fopen($filePath, "r");         $lineNumArr = array();         $lineNum = 0;         while (!feof($fp)) {             $lineNum++;             $lineCont = fgets($fp);             if (strstr($lineCont, $target)) {                if($first) {                     return $lineNum;                 } else {                     $lineNumArr[] = $lineNum;                }             }         }         return $lineNumArr;     }

原创粉丝点击