一个可以找出源代码中所有中文的工具
2018-09-07 13:22
一个可以找出源代码中所有中文的工具
填写需要查找的路径$sf即可。
功能
1找出所有中文
2忽略注释语句中的中文
3可添加需要忽略的文件和文件夹
4生成日志文件
如果您正发愁为自己的软件更新语言包
请使用此工具。
我的例子:
复制代码 代码如下:
<?php
set_time_limit(0);
ob_implicit_flush();
//注释格式
$remark=array(
array(//debug,\r\n)
,array(/**,*/)
,array(/*debug,*/)
,array(/*note,*/)
,array(//note,\r\n)
);
//以下目录和文件不被查询
//项目目录
$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\tspilt=>----------------------------------------------------,);
fclose($lf);
$lf=fopen($langfile,ab);
$ptag=\\;
findfile($sf);
fwrite($lf,\r\n);\r\n\r\n?>);
fclose($lf);
functionfindfile($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($remarkas$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处)<br>;
ob_flush();flush();
$cns=0;
}
fwrite($log,$str);
$str=;
}
}
}
}
fclose($log);
}
?>
下一篇:PHP自动识别当前使用移动终端