PHP递归统计系统中代码行数


Posted in PHP onSeptember 19, 2019

本文实例为大家分享了PHP递归统计系统中代码行数的具体代码,供大家参考,具体内容如下

1、统计代码行数,必然用到的两个关键的知识点:函数递归以及文件读取。

函数递归无非就是在函数的代码中调用本身的函数名,以此形成递归循环

function A($param){
  if('condition')
    A($param_son);
  else
    return $result;
}

在文件读取中,有很多读取方式,采用了file()读取,按行读取,形成一个数组。

$file_open = file($file);

2、完整的代码

<?php
/**
 * Created by PhpStorm.
 * User: kung
 * Date: 2015/10/16
 * Time: 16:12
 */
 
function get_file_dir($dir){
  $dir_arr = scandir($dir);
  $file_arr = array();
  foreach($dir_arr as $dir_one){
    if(is_dir($dir.DIRECTORY_SEPARATOR.$dir_one) && $dir_one != '.' && $dir_one != '..'){
      $file_arr_son = get_file_dir($dir.DIRECTORY_SEPARATOR.$dir_one);
      $file_arr = array_merge($file_arr,$file_arr_son);
    }else{
      if($dir_one == '.' || $dir_one == '..' || strpos($dir_one,'.php') <= 0)
        continue;
      $file_arr[] = $dir.DIRECTORY_SEPARATOR.$dir_one;
    }
  }
  return $file_arr;
}
 
$dir = dirname(__FILE__);
$file_arr = get_file_dir($dir);
$count = 0; //计算换行
$clean_count = 0;//不计算换行
foreach($file_arr as $file){
  $file_open = file($file);
  $line_count = count($file_open);
  $count += $line_count;
  foreach($file_open as $file_val){
    if($file_val == PHP_EOL)/*if(nl2br($file_val) == '<br />'想通过这种方式,但是发现不可行,用var_dump(nl2br($file_val))进行打印,复制才可以*/
      continue;
    $clean_count++;
 
  }
}
echo $count.'-----'.$clean_count;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP无限分类(树形类)的深入分析
Jun 02 PHP
探讨php中header的用法详解
Jun 07 PHP
解决ajax+php中文乱码的方法详解
Jun 09 PHP
解析php防止form重复提交的方法
Jul 01 PHP
thinkphp获取栏目和文章当前位置的方法
Oct 29 PHP
php模拟登陆的实现方法分析
Jan 09 PHP
php使用GD创建保持宽高比缩略图的方法
Apr 17 PHP
PHP经典面试题之设计模式(经常遇到)
Oct 15 PHP
PHP 验证身份证是否合法的函数
Feb 09 PHP
thinkphp项目如何自定义微信分享描述内容
Feb 20 PHP
php和js实现根据子网掩码和ip计算子网功能示例
Nov 09 PHP
tp5框架前台无限极导航菜单类实现方法分析
Mar 29 PHP
PHP实现统计代码行数小工具
Sep 19 #PHP
php设计模式之观察者模式定义与用法经典示例
Sep 19 #PHP
php设计模式之职责链模式定义与用法经典示例
Sep 19 #PHP
php使用yield对性能提升的测试实例分析
Sep 19 #PHP
PHP+redis实现的限制抢购防止商品超发功能详解
Sep 19 #PHP
php+redis实现消息队列功能示例
Sep 19 #PHP
php文件包含的几种方式总结
Sep 19 #PHP
You might like
PHP中的超全局变量
2006/10/09 PHP
利用php+mysql来做一个功能强大的在线计算器
2010/10/12 PHP
php实现json编码的方法
2015/07/30 PHP
laravel5 Eloquent 实现事务方式
2019/10/21 PHP
一个可以兼容IE FF的加为首页与加入收藏实现代码
2009/11/02 Javascript
JavaScript 类型的包装对象(Typed Wrappers)
2011/10/27 Javascript
javascript 进阶篇1 正则表达式,cookie管理,userData
2012/03/14 Javascript
关于在IE下的一个安全BUG --可用于跟踪用户的系统鼠标位置
2013/04/17 Javascript
jQuery检测鼠标左键和右键点击的方法
2015/03/17 Javascript
详解JavaScript中的事件流和事件处理程序
2016/05/20 Javascript
Javascript必知必会(四)js类型转换
2016/06/08 Javascript
javascript类型系统——日期Date对象全面了解
2016/07/13 Javascript
JS实现图片上传预览功能
2016/11/21 Javascript
jQuery.Validate表单验证插件的使用示例详解
2017/01/04 Javascript
基于jQuery和CSS3实现APPLE TV海报视差效果
2017/06/16 jQuery
解决option标签selected=&quot;selected&quot;属性失效的问题
2017/11/06 Javascript
JavaScript实现微信号随机切换代码
2018/03/09 Javascript
JS实现同一DOM元素上onClick事件与onDblClick事件并存的解决方法
2018/06/07 Javascript
vue自定义底部导航栏Tabbar的实现代码
2018/09/03 Javascript
Mint UI组件库CheckList使用及踩坑总结
2018/12/20 Javascript
javascript导出csv文件(excel)的方法示例
2019/08/25 Javascript
解析vue、angular深度作用选择器
2019/09/11 Javascript
使用Vue-scroller页面input框不能触发滑动的问题及解决方法
2020/08/08 Javascript
Vue+Element ui 根据后台返回数据设置动态表头操作
2020/09/21 Javascript
简单介绍Python中的round()方法
2015/05/15 Python
Django框架下在URLconf中指定视图缓存的方法
2015/07/23 Python
Django给admin添加Action的步骤详解
2019/05/01 Python
详解CSS3中nth-child与nth-of-type的区别
2017/01/05 HTML / CSS
HTML5 canvas基本绘图之绘制曲线
2016/06/27 HTML / CSS
预订全球最佳旅行体验:Viator
2018/03/30 全球购物
毕业生自荐书
2014/02/03 职场文书
进步之星获奖感言
2014/02/22 职场文书
广告语设计及教案
2014/03/21 职场文书
幼儿园保教工作总结2015
2015/10/15 职场文书
2019毕业论文致谢词
2019/06/24 职场文书
2019年怎样写好导游词?
2019/07/02 职场文书