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 相关文章推荐
Blitz templates 最快的PHP模板引擎
Apr 06 PHP
数据库中排序的对比及使用条件详解
Feb 23 PHP
通过PHP的内置函数,通过DES算法对数据加密和解密
Jun 21 PHP
如何设置mysql允许外网访问
Jun 04 PHP
php使用pear_smtp发送邮件
Apr 15 PHP
PHP检测链接是否存在的代码实例分享
May 06 PHP
PHP与JavaScript针对Cookie的读写、交互操作方法详解
Aug 07 PHP
PHP后台实现微信小程序登录
Aug 03 PHP
浅谈PHP无限极分类原理
Mar 14 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
Mar 29 PHP
php5对象复制、clone、浅复制与深复制实例详解
Aug 14 PHP
PHP实现简易图形计算器
Aug 28 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用mysql数据库存储session的代码
2010/03/05 PHP
php 模拟 asp.net webFrom 按钮提交事件实例
2014/10/13 PHP
微信开发之网页授权获取用户信息(二)
2016/01/08 PHP
分析PHP中单双引号的误区和双引号小隐患
2016/07/19 PHP
PHP的垃圾回收机制代码实例讲解
2021/02/27 PHP
PHP7 新增功能
2021/03/09 PHP
JS 图片缩放效果代码
2010/06/09 Javascript
关于JavaScript中原型继承中的一点思考
2012/07/25 Javascript
javascript显示用户停留时间的简单实例
2013/08/05 Javascript
JS简单实现文件上传实例代码(无需插件)
2013/11/15 Javascript
文本域中换行符的替换示例
2014/03/04 Javascript
使用jquery操作session方法分享
2015/01/22 Javascript
功能强大的jquery.validate表单验证插件
2016/11/07 Javascript
Node.js 中使用 async 函数的方法
2017/11/20 Javascript
利用ECharts.js画K线图的方法示例
2018/01/10 Javascript
使用Vue CLI创建typescript项目的方法
2019/08/09 Javascript
JS常见内存泄漏及解决方案解析
2020/05/30 Javascript
Python中的Numeric包和Numarray包使用教程
2015/04/13 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
Ubuntu下安装PyV8
2016/03/13 Python
numpy中的ndarray方法和属性详解
2019/05/27 Python
pytorch载入预训练模型后,实现训练指定层
2020/01/06 Python
python 工具 字符串转numpy浮点数组的实现
2020/03/14 Python
pycharm 配置svn的图文教程(手把手教你)
2021/01/15 Python
python的scipy.stats模块中正态分布常用函数总结
2021/02/19 Python
利用纯css3实现的文字亮光特效的代码演示
2014/11/27 HTML / CSS
详解HTML5 录音的踩坑之旅
2017/12/26 HTML / CSS
世界顶级俱乐部的官方球衣和套装:Subside Sports
2018/04/22 全球购物
德国网上花店:Valentins
2018/08/15 全球购物
No7 Beauty美国官网:英国国民护肤品牌
2019/10/31 全球购物
远程学习的教学用品和家庭学习资源:Really Good Stuff
2020/04/27 全球购物
土木工程专业个人求职信
2013/12/30 职场文书
大学社团活动策划书
2014/01/26 职场文书
边城读书笔记
2015/06/29 职场文书
python 爬取天气网卫星图片
2021/06/07 Python
排查并解决MySQL生产库内存使用率高的报警
2022/04/11 MySQL