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应用程序来获取Web服务器的状态信息
Oct 09 PHP
用PHP实现图象锐化代码
Jun 14 PHP
PHP学习笔记 (1) 环境配置与代码调试
Jun 19 PHP
PHP session会话的安全性分析
Sep 08 PHP
PHP命名空间(Namespace)的使用详解
May 04 PHP
php全角字符转换为半角函数
Feb 07 PHP
php生成二维码时出现中文乱码的解决方法
Dec 18 PHP
如何使用PHP Embed SAPI实现Opcodes查看器
Nov 10 PHP
php 访问oracle 存储过程实例详解
Jan 08 PHP
php 使用curl模拟ip和来源进行访问的实现方法
May 02 PHP
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
Dec 13 PHP
PHP7生产环境队列Beanstalkd用法详解
May 19 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
CI框架源码阅读,系统常量文件constants.php的配置
2013/02/28 PHP
php判断用户是否手机访问代码
2015/06/08 PHP
Javascript中的数学函数集合
2007/05/08 Javascript
js chrome浏览器判断代码
2010/03/28 Javascript
基于JQuery的多标签实现代码
2012/09/19 Javascript
js禁止document element对象选中文本实现代码
2013/03/21 Javascript
纯JS实现五子棋游戏兼容各浏览器(附源码)
2013/04/24 Javascript
js点击选择文本的方法
2015/02/09 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
2015/03/25 Javascript
JavaScript中的anchor()方法使用详解
2015/06/08 Javascript
JavaScript编写连连看小游戏
2015/07/07 Javascript
jquery实现漂亮的二级下拉菜单代码
2015/08/26 Javascript
Jquery ajax基础教程
2015/11/20 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
2016/06/07 Javascript
利用vue-router实现二级菜单内容转换
2016/11/30 Javascript
Vue2.0权限树组件实现代码
2017/08/29 Javascript
Vue项目前后端联调(使用proxyTable实现跨域方式)
2020/07/18 Javascript
js实现无缝轮播图插件封装
2020/07/31 Javascript
vant 自定义 van-dropdown-item的用法
2020/08/05 Javascript
python正则表达式re模块详细介绍
2014/05/29 Python
Ubuntu安装Jupyter Notebook教程
2017/10/18 Python
Python中import机制详解
2017/11/14 Python
Python中协程用法代码详解
2018/02/10 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
python爬虫开发之selenium模块详细使用方法与实例全解
2020/03/09 Python
python爬取2021猫眼票房字体加密实例
2021/02/19 Python
波兰香水和化妆品购物网站:Notino.pl
2017/11/07 全球购物
优瑞自动咖啡机官网:Jura
2018/09/29 全球购物
德国净水壶和滤芯品牌:波尔德PearlCo(家用净水器)
2020/04/29 全球购物
.NET面试题:什么是反射
2016/09/30 面试题
英语专业大学生求职简历的自我评价
2013/10/18 职场文书
社区包粽子活动方案
2014/01/21 职场文书
《棉鞋里的阳光》教学反思
2014/04/24 职场文书
教代会闭幕词
2015/01/28 职场文书
草房子读书笔记
2015/06/29 职场文书
新娘婚礼致辞
2015/07/27 职场文书