使用 FTP 工具上传文件到服务器之后,发现每个文件内容全部都多了一个换行,每上传一次多一个换行、子子孙孙川流不息???
原来几百行的代码硬生生变成了几千号,如果多一行多一块钱那。。。算啦算啦
作为一个讲究的程序猿我一般使用正则替换已经被摧残的文件内容
我一般使用编辑器的正则替换功能,编辑器一键去除如sublime 跟 vscode CTRL+H 选择正则匹配 下面是我常用的几个正则
匹配两个换行以上
^\s*(?=\r?$)\n
或者一个换行就匹配
^(?=\r?$)\n
或者,猛男程序员可以使用脚本一键去除,先备份在测试,不然有点危险
<?php header("Content-type: text/html; charset=utf-8"); /** * 读取目录下的文件 * @author xiadmin * @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 xiadmin * @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); ?>