- set_time_limit(0);
- ob_implicit_flush();
- // 注释格式
- $remark = array(
- array('//debug', "\r\n")
- , array('/**', '*/')
- , array('/*debug', '*/')
- , array('/*note', '*/')
- , array('//note', "\r\n")
- );
- // 以下目录和文件不被查询
- $filter = 'forumdata|config\.inc\.php|debug|test|readme|utilities|upgrade|\.tpl.php|index\.htm|\.lang.php';
- // 项目目录
- $sf = 'd:\\data\\labs\\develop\\dzhead\\';
- // 日志目录
- $logname = 'cnlog.txt';
- $langfile = 'lang.php';
- $log = fopen($logname, 'w');
- fclose($log);
- $lf = fopen($langfile, 'wb');
- fwrite($lf, "\r\n\r\n\t'spilt'=>'----------------------------------------------------',");
- fclose($lf);
- $lf = fopen($langfile, 'ab');
- $ptag = '\\';
- findfile($sf);
- fwrite($lf, "\r\n);\r\n\r\n?>");
- fclose($lf);
- function findfile($sf){
- global $ptag, $logname, $filter, $lf;
- $log = fopen($logname, 'ab');
- global $remark;
- if(is_dir($sf)) {
- if($dh = opendir($sf)) {
- while(($file = readdir($dh)) !== false) {
- if($file == '.' || $file == '..') {
- continue;
- } elseif(filetype($sf.$file) == 'dir') {
- findfile($sf.$file.$ptag);
- } elseif((preg_match('/\.php$/', $file) || preg_match('/\.htm$/', $file)) && !preg_match('/('.$filter.')/', $sf.$file)) {
- $sfp = fopen($sf.$file, 'rb');
- $buf = fread($sfp, filesize($sf.$file));
- fclose($sfp);
- foreach($remark as $v) {
- $data = '';
- while(count($strcut = explode($v[0], $buf, 2))> 1) {
- $data .= $strcut[0];
- if(($strcut = explode($v[1], $strcut[1], 2))> 1){
- $buf = $strcut[1];
- } else {
- $buf = $strcut[0];
- break;
- }
- }
- $data .= $strcut[0];
- $buf = $data;
- }
- $data = $buf;
- $lines = 0;
- $cn = $str = '';
- $cns = 0;
- $ldata = "\r\n\t'".str_replace('.', '_', $file)."'=>'";
- for($i = 0; $i <strlen($data); $i++){
- $c = ord($data{$i});
- if($c == 0x0A || $data{$i+1} == ''){
- $lines++;
- if(!empty($cn)){
- $ldata .= "',";
- $ldata = str_replace("\r\n\t'".str_replace('.', '_', $file)."'=>'',",'', $ldata);
- fwrite($lf, $ldata);
- $cn = "\r\n$lines:".$cn;
- $str .= $cn;
- $cn = '';
- $ldata = "\r\n\t'".str_replace('.', '_', $file)."'=>'";
- }
- } elseif($c>= 0x81 && $c <= 0xFE) {
- $c = ord($data{++$i});
- if($c>= 0x40 && $c <= 0xFE) {
- $cn .= $data{$i-1}.$data{$i};
- $ldata .= $data{$i-1}.$data{$i};
- while(($c = ord($data{++$i})) != 0x3C && $c != 0x0A && $c != 0x0D && $c != 0x27 && $c != 0x3E && $c != 0x3B && $c != 0x22 && $c != 0x3D && $c <0x81) {
- $space .= chr($c);
- }
- $i--;
- if(ord($data{$i+1}) < 0x81) {
- $cns++;
- $cn .= '$';
- $ldata .= "',\r\n\t'".str_replace('.', '_', $file)."'=>'";
- } else {
- $cn .= $space;
- }
- $space = '';
- }
- }
- }
- if($str != '') {
- fwrite($log, "\n--".$sf.$file."----------------------- (共 $cns 处)");
- echo "{$sf}$file (共 $cns 处)";
- ob_flush();flush();
- $cns = 0;
- }
- fwrite($log, $str);
- $str = '';
- }
- }
- }
- }
- fclose($log);
- }
- ?>
来源: https://www.php1.cn/detail/php-c017580829.html