正则匹配两个换行

使用 FTP 上传文件到服务器之后,每个文件内容都多了一个换行,此程序将多个换行替换成一个换行 使用前先测试。

<?php 
header("Content-type: text/html; charset=utf-8");
/**
 * 读取目录下的文件
 * @author Xm
 * @anotherdate 2018-04-18T10:26:54+0800
 * @param       string                   $base 扫描目录
 * @param       string                   $ext  扫描文件后缀名
 * @return      [type]                         
 */
function readDirs($base,$ext="*")
{
    if(is_dir($base))
    {
        $basedir = empty($base) ? '.' : $base;
        $source = opendir($basedir);
        while($file_name = readdir($source))
        {   
            if($file_name == "." || $file_name == "..") continue;
            $file_path = $basedir."/".$file_name;
            if(is_dir($file_path))
            {
                echo "读取目录".$file_path."<br>";
                readDirs($file_path,$ext);
            }else{
                $file_ext = pathinfo($file_name, PATHINFO_EXTENSION);
                if($ext != "*" && $file_ext != $ext)
                {
                    echo "文件 ".$file_path." 后缀名不一致,已忽略<br>";
                    continue;
                }
                echo "正在替换文件 ".$file_path." 中的多空格<br>";
                removeBr2($file_path);
            }
        }

    }
}
/**
 * 正则匹配所有换行
 * @author Xm
 * @anotherdate 2018-04-18T10:27:47+0800
 * @param       [type]                   $file_path [description]
 * @return      [type]                              [description]
 */
function removeBr2($file_path)
{
    if(file_exists($file_path)){
        $fp = fopen($file_path,"r");
        //指定读取大小,这里把整个文件内容读取出来
        $len = filesize($file_path);
        if($len <= 0 && $fp)
        {
            echo "文件 ".$file_path." 无法读取或内容为空<br>";
            return;
        }
        $str = fread($fp,$len);
        // 匹配所有换行,替换成一个换行
        // $preg = "/(\r\n)+/";
        $preg = "/(\r\n){1,}/";
        // 正则
        // preg_match_all($preg, $str, $a);
        $str = preg_replace($preg,"\r\n",$str);
        $fp = fopen($file_path,"w");
        if($str != "")
        fwrite($fp,$str);
        fclose($fp);
    }
}

$base = ".";
$ext = "php";
readDirs($base,$ext);
?>

文件

^\s*(?=\r?$)\n

转载于:https://my.oschina.net/18y/blog/1796957

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值