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 相关文章推荐
MySQL授权问题总结
May 06 PHP
解析PHP将对象转换成数组的方法(兼容多维数组类型)
Jun 21 PHP
简单的php中文转拼音的实现代码
Feb 11 PHP
CodeIgniter中使用cookie的三种方式详解
Jul 18 PHP
php实现的简单检验登陆类
Jun 18 PHP
PHP中配置IIS7实现基本身份验证的方法
Sep 24 PHP
Yii2 rbac权限控制之菜单menu实例教程
Apr 28 PHP
Yii2 GridView实现列表页直接修改数据的方法
May 16 PHP
php车辆违章查询数据示例
Oct 14 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
Oct 30 PHP
php输出文字乱码的解决方法
Oct 04 PHP
phpmyadmin在宝塔面板里进不去的解决方案
Jul 06 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
CakePHP去除默认显示的标题及图标的方法
2008/10/22 PHP
php中判断数组是一维,二维,还是多维的解决方法
2013/05/04 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
2014/06/12 PHP
YII中assets的使用示例
2014/07/31 PHP
php获取客户端电脑屏幕参数的方法
2015/01/09 PHP
php 使用array函数实现分页
2015/02/13 PHP
TP5多入口设置实例讲解
2020/12/15 PHP
List all the Databases on a SQL Server
2007/06/21 Javascript
jsTree树控件(基于jQuery, 超强悍)[推荐]
2009/09/01 Javascript
js 上传图片预览问题
2010/12/06 Javascript
javascript中caller和callee详解
2015/08/10 Javascript
javaScript数组迭代方法详解
2016/04/14 Javascript
js阻止默认浏览器行为与冒泡行为的实现代码
2016/05/15 Javascript
jquery动态创建div与input的实例代码
2016/10/12 Javascript
node+experss实现爬取电影天堂爬虫
2016/11/20 Javascript
Vue中组件之间数据的传递的示例代码
2017/09/08 Javascript
JavaScript中利用Array filter() 方法压缩稀疏数组
2018/02/24 Javascript
详解vue中点击空白处隐藏div的实现(用指令实现)
2018/04/19 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
2018/08/20 Javascript
在vue中使用setInterval的方法示例
2019/04/16 Javascript
Vue中UI组件库之Vuex与虚拟服务器初识
2019/05/07 Javascript
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
2017/08/23 Python
win8.1安装Python 2.7版环境图文详解
2019/07/01 Python
Tensorflow实现部分参数梯度更新操作
2020/01/23 Python
如何实现在jupyter notebook中播放视频(不停地展示图片)
2020/04/23 Python
基于Python实现简单学生管理系统
2020/07/24 Python
使用HTML5和CSS3表单验证功能
2017/05/05 HTML / CSS
CSS3实现可爱的小黄人动画
2016/07/11 HTML / CSS
澳大利亚最超值的自行车之家:Reid Cycles
2019/03/24 全球购物
Deux par Deux官方网站:设计师童装
2020/01/03 全球购物
家具厂厂长岗位职责
2014/01/01 职场文书
清洁工表扬信
2014/01/08 职场文书
2014小学语文教学工作总结
2014/12/17 职场文书
安全生产警示教育活动总结
2015/05/09 职场文书
车辆管理制度范本
2015/08/05 职场文书
P站美图推荐——变身女主角特辑
2022/03/20 日漫