最近提交软著资料,有一项是让你填写软件源码行数,以及将源代码放置在文件中提交给他们。
相信大家都懒得一个个文件去打开复制吧,还有计算源码行数也是挺麻烦的事情,那么我就找了网上源码,加上自己修改,下面代码就能解决这些问题。
获取源码行数:
//行数
$line=0;
//需要统计的文件类型
$arr=array("php","html","css","js","tpl","wxml","jizhi");
//过滤的文件夹
$filtering=array("wamplangues","ckeditor","wampthemes","wordpress","dede","thinkphp");
//遍历目录
functiongetsource($dirname){
global$arr;
global$filtering;
global$line;
//扫描目录下的文件和目录
$dirArr=scandir($dirname);
//遍历目录
foreach($dirArras$v){
//组合文件或文件夹的路径
$filename=$dirname.'\\'.$v;
//.表示本层目录,..表示上层目录
if($v!='.'&&$v!='..'){
//判断是不是一个目录,是的话递归调用
if(is_dir($filename)){
//过滤不需要统计的目录
if(in_array($v,$filtering)){
continue;
}
getsource($filename);
}else{
//截取后缀名
$extension=pathinfo($v,PATHINFO_EXTENSION);
//比较后缀名是否在统计的文件类型里
if(in_array($extension,$arr)){
//打开文件
$fp=fopen($filename,'r');
//读取行数
while(stream_get_line($fp,8192,"\n")){
$line++;
}
//关闭文件
fclose($fp);
}
}
}
}
}
//执行方法,参数为项目路径
getsource("C:\Users\Administrator\Desktop\developer\jizhicms\jizhicms");
//打印行数
echo$line;获取软件源代码:
//行数
$line=0;
$webpath="C:\Users\Administrator\Desktop\developer\jizhicms\jizhicms";
//需要统计的文件类型
$arr=array("php","html","css","js","tpl","wxml","jizhi");
//过滤的文件夹
$filtering=array("wamplangues","ckeditor","wampthemes","wordpress","dede","thinkphp");
//遍历目录
functiongetsource($dirname){
global$arr;
global$filtering;
global$line;
global$webpath;
//扫描目录下的文件和目录
$dirArr=scandir($dirname);
//遍历目录
foreach($dirArras$v){
//组合文件或文件夹的路径
$filename=$dirname.'\\'.$v;
//.表示本层目录,..表示上层目录
if($v!='.'&&$v!='..'){
//判断是不是一个目录,是的话递归调用
if(is_dir($filename)){
//过滤不需要统计的目录
if(in_array($v,$filtering)){
continue;
}
getsource($filename);
}else{
//截取后缀名
$extension=pathinfo($v,PATHINFO_EXTENSION);
//比较后缀名是否在统计的文件类型里
if(in_array($extension,$arr)){
$res=file_get_contents($filename);
$res=explode("\n",$res);
echo'//文件名:'.str_replace($webpath.'\\','',$filename).'代码如下:<br>';
foreach($resas$l){
if($l&&trim($l)){
$line++;
$l=htmlspecialchars(trim($l),ENT_QUOTES);
if(version_compare(PHP_VERSION,'7.4','>=')){
$l=addslashes($l);
}else{
if(!get_magic_quotes_gpc())$value=addslashes($l);
}
echo$l.'<br>';
}
}
}
}
}
}
}
//执行方法,参数为项目路径
getsource($webpath);


