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 cout&amp;lt;&amp;lt;的一点看法
Jan 24 PHP
php 无法载入mysql扩展
Mar 12 PHP
dedecms系统的广告设置代码 基础版本
Apr 09 PHP
php学习之数据类型之间的转换介绍
Jun 09 PHP
php基于base64解码图片与加密图片还原实例
Nov 03 PHP
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
Jan 22 PHP
PHP根据图片色界在不同位置加水印的方法
Jul 01 PHP
Symfony2中被遗弃的getRequest()方法分析
Mar 17 PHP
PHP Cookie学习笔记
Aug 23 PHP
php版微信公众号接口实现发红包的方法
Oct 14 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
Dec 21 PHP
php 多个变量指向同一个引用($b = &amp;$a)用法分析
Nov 13 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
如何删除多级目录
2006/10/09 PHP
PHP中几个常用的魔术常量
2012/02/23 PHP
php通过sort()函数给数组排序的方法
2015/03/18 PHP
ThinkPHP在Cli模式下使用模板引擎的方法
2015/09/25 PHP
PHP延迟静态绑定的深入讲解
2018/04/02 PHP
PHP实现数组根据某个单元字段排序操作示例
2018/08/01 PHP
js 实现无缝滚动 兼容IE和FF
2009/07/15 Javascript
jQuery 快速结束当前正在执行的动画
2013/11/20 Javascript
readonly和disabled属性的区别
2015/07/26 Javascript
举例讲解JavaScript substring()的使用方法
2015/11/09 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
JQuery解析XML数据的几个简单实例
2016/05/18 Javascript
AngularJS之依赖注入模拟实现
2016/08/19 Javascript
javascript汉字拼音互转的简单实例
2016/10/09 Javascript
JS正则获取HTML元素的方法
2017/03/31 Javascript
Vue动态加载异步组件的方法
2018/11/21 Javascript
Vue 指令实现按钮级别权限管理功能
2019/04/23 Javascript
解决vue单页面应用中动态修改title问题
2019/06/09 Javascript
Vue 动态组件components和v-once指令的实现
2019/08/30 Javascript
vue实现简易计算器功能
2021/01/20 Vue.js
[16:21]教你分分钟做大人:圣堂刺客
2014/12/03 DOTA
Python 实现文件的全备份和差异备份详解
2016/12/27 Python
python实现文本界面网络聊天室
2018/12/12 Python
python添加菜单图文讲解
2019/06/04 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
numpy:np.newaxis 实现将行向量转换成列向量
2019/11/30 Python
Python中使用threading.Event协调线程的运行详解
2020/05/02 Python
python使用多线程查询数据库的实现示例
2020/08/17 Python
HTML5中判断用户是否正在浏览页面的方法
2014/05/03 HTML / CSS
澳大利亚领先的睡衣品牌:Peter Alexander
2016/08/16 全球购物
MANGO官方网站:西班牙芒果服装品牌
2017/01/15 全球购物
印度低票价航空公司:GoAir
2017/10/11 全球购物
世界上最好的足球商店:Unisport
2019/03/02 全球购物
智能钱包:Ekster
2019/11/21 全球购物
上课迟到检讨书
2014/02/19 职场文书
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技