isFile()) { $file = $file->__toString(); $fileExt = (false === ($pos = strrpos($file,'.'))) ? NULL : substr($file,$pos + 1); $fileName = (false === $pos) ? $file : substr($file,0,$pos); if(NULL !== $stamp && in_array($fileExt,$stamp)) { $files[] = $trim ? $file : $fileName; } else if(NULL === $stamp) { $files[] = $trim ? $file : $fileName; } } } return $files; } //获取一个目录下的目录 function mgGetDir($inpath) { $dirs = array(); if(!is_dir($inpath)) { return $dirs; } $it = new DirectoryIterator($inpath); foreach($it as $dir) { if($dir->isDir() && !$dir->isDot()) { $dirs[] = $dir->__toString(); } } return $dirs; } function tabsize($dir = ROOT_DIR) { if($files = mgGetFile($dir, true, 'php')) { foreach($files as $file) { if($contents = file_get_contents($dir . '/' . $file)) { $lines = preg_split("(\r\n|\r|\n)", $contents); $result = array(); foreach($lines as $line) { preg_match("/^(\s+)(.*)$/", $line, $out); if($out && strlen($out[1]) > 0) { $line = str_replace("\t", ' ', $out[1]) . $out[2]; } $result[] = rtrim($line) . "\r\n"; } file_put_contents($dir . '/' . $file, substr(implode('', $result), 0, -2)); } } } if($dirs = mgGetDir($dir)) { foreach($dirs as $indir) { tabsize($dir . '/' . $indir); } } } tabsize();