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 相关文章推荐
一次编写,随处运行
Oct 09 PHP
PHP+MYSQL的文章管理系统(二)
Oct 09 PHP
我的论坛源代码(一)
Oct 09 PHP
PHP form 表单传参明细研究
Jul 17 PHP
php数组函数序列之sort() 对数组的元素值进行升序排序
Nov 02 PHP
php array的学习笔记
May 16 PHP
php类中的$this,static,final,const,self这几个关键字使用方法
Dec 14 PHP
php简单压缩css样式示例
Sep 22 PHP
php表单加入Token防止重复提交的方法分析
Oct 10 PHP
php魔法函数与魔法常量使用介绍
Jul 23 PHP
Laravel学习教程之从入口到输出过程详解
Aug 27 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
Mar 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
PHP+APACHE实现用户论证的方法
2006/10/09 PHP
php 生成唯一id的几种解决方法
2013/03/08 PHP
深入PHP magic quotes的详解
2013/06/17 PHP
利用PHP绘图函数实现简单验证码功能的方法
2016/10/18 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
2019/04/17 PHP
通过下拉框的值来确定输入框是否可以为空的代码
2011/10/18 Javascript
jquery使用append(content)方法注意事项分享
2014/01/06 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
2017/03/15 Javascript
如何使用bootstrap框架 bootstrap入门必看!
2017/04/13 Javascript
JS中定位 position 的使用实例代码
2017/08/06 Javascript
关于react-router/react-router-dom v4 history不能访问问题的解决
2018/01/08 Javascript
layer弹出层显示在top顶层的方法
2019/09/11 Javascript
小程序实现背景音乐播放和暂停
2020/06/19 Javascript
Nuxt pages下不同的页面对应layout下的页面布局操作
2020/11/05 Javascript
[03:26]《DAC最前线》之EG经理自述DOTA2经历
2015/02/02 DOTA
Python中的特殊语法:filter、map、reduce、lambda介绍
2015/04/14 Python
Python实现的排列组合、破解密码算法示例
2019/04/12 Python
详解pandas数据合并与重塑(pd.concat篇)
2019/07/09 Python
python matplotlib饼状图参数及用法解析
2019/11/04 Python
3种python调用其他脚本的方法
2020/01/06 Python
快速解决Django关闭Debug模式无法加载media图片与static静态文件
2020/04/07 Python
python爬虫实例之获取动漫截图
2020/05/31 Python
Pytorch mask-rcnn 实现细节分享
2020/06/24 Python
python 多线程死锁问题的解决方案
2020/08/25 Python
python跨文件使用全局变量的实现
2020/11/17 Python
Hotter Shoes美国官网:英国最受欢迎的舒适鞋
2018/08/02 全球购物
施华洛世奇中国官网:SWAROVSKI中国
2020/06/16 全球购物
营销总经理岗位职责
2014/02/02 职场文书
《傅雷家书》教学反思
2014/04/20 职场文书
电子商务专业自荐信
2014/06/02 职场文书
交通安全横幅标语
2014/10/07 职场文书
副检察长四风问题对照检查材料思想汇报
2014/10/07 职场文书
客户答谢会致辞
2015/07/30 职场文书
《角的初步认识》教学反思
2016/02/17 职场文书
处世之道:关于真诚相待的名言推荐
2019/12/02 职场文书
Nginx源码编译安装过程记录
2021/11/17 Servers