当前位置:首页 > 网页 > 正文内容

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

admin8年前 (2016-09-20)网页4361
#在需要查找的内容后一行新起一行插入内容
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);
            }
        }
    }

    #删除内容所在的某一行
    function delTargetLine($filePath, $target)
    {
        $result = null;
        $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;
    }


扫描二维码推送至手机访问。

版权声明:本文由视觉博客发布,如需转载请注明出处。

本文链接:http://feelsight.cn/post/20.html

“PHP文件操作之,插入某行,删除某行,获取行号” 的相关文章

php接收post乱码解决

原因是没有转码$contactEmail = $_POST['contactEmail'];  $contactEmail=mb_convert_encoding($contactEmail,'GBK','UTF-8')...

网站加载动画/预加载loading动画,再载入内容

默认情况下如果网站请求速度慢,所以会有一段时间的空白页面等等,用户体验效果不好,见到很多的页面都有预加载的效果,加载之前先加载一个动画,后台进程继续加载页面内容,当页面内容加载完之后再退出动画显示内容,这样的用户体验更好。 例如此链接:http://crusad...

微信小程序云函数生成二维码

首先,需要给对应的云函数安装 request-promise 依赖。(不会给云函数安装依赖的盆友请移步 微信小程序中的云开发如何使用npm安装依赖) 生成二维码的云函数如下: // 云函数入口文件 c...

微信小程序pc端正常,手机端报错 “ request:fail -2:net::ERR_FAILED ”  你证书没整对

微信小程序pc端正常,手机端报错 “ request:fail -2:net::ERR_FAILED ” 你证书没整对

使用二级域名的时候要注意证书是否已经正确配置,在小程序中怎么调试都是正常的,浏览器中也可以正常访问,证书也是没问题的,到微信小程序手机端就是无法访问,报错“request:fail -2:net::ERR_FAILED” 进不到接口里面。 打开网址: https://ww...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。