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之第一天
Oct 09 PHP
DEDE采集大师官方留后门的删除办法
Jan 08 PHP
PHP curl_setopt()函数实例代码与参数分析
Jun 02 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
Jun 23 PHP
PHP直接修改表内容DataGrid功能实现代码
Sep 24 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
Jan 08 PHP
Zend Framework教程之响应对象的封装Zend_Controller_Response实例详解
Mar 07 PHP
php pdo oracle中文乱码的快速解决方法
May 16 PHP
php+ajax实现带进度条的上传图片功能【附demo源码下载】
Sep 14 PHP
PHP判断是否是微信打开,浏览器打开的方法
Mar 14 PHP
PHP反射学习入门示例
Jun 14 PHP
php字符串过滤strip_tags()函数用法实例分析
Jun 24 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数据库密码的找回的步骤
2011/01/12 PHP
浅析php过滤html字符串,防止SQL注入的方法
2013/07/02 PHP
浅析ThinkPHP中的pathinfo模式和URL重写
2014/01/06 PHP
PHP多维数组遍历方法(2种实现方法)
2015/12/10 PHP
PHP面向对象自动加载机制原理与用法分析
2016/10/14 PHP
PHP的中使用非缓冲模式查询数据库的方法
2017/02/05 PHP
laravel5.1框架model类查询的实现方法
2019/10/08 PHP
PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结
2019/12/04 PHP
基于jstree使用AJAX请求获取数据形成树
2017/08/29 Javascript
React如何利用相对于根目录进行引用组件详解
2017/10/09 Javascript
js时间戳与日期格式之间相互转换
2017/12/11 Javascript
js判断传入时间和当前时间大小实例(超简单)
2018/01/11 Javascript
基于JS实现带动画效果的流程进度条
2018/06/01 Javascript
原生JS实现随机点名项目的实例代码
2019/04/30 Javascript
vue-router 中 meta的用法详解
2019/11/01 Javascript
[51:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第二局
2016/03/03 DOTA
python中实现将多个print输出合成一个数组
2018/04/19 Python
Python实现查找二叉搜索树第k大的节点功能示例
2019/01/24 Python
opencv 获取rtsp流媒体视频的实现方法
2019/08/23 Python
Xadmin+rules实现多选行权限方式(级联效果)
2020/04/07 Python
在keras中实现查看其训练loss值
2020/06/16 Python
python redis存入字典序列化存储教程
2020/07/16 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
2020/10/27 Python
HTML5中input输入框默认提示文字向左向右移动的示例代码
2020/09/10 HTML / CSS
美国益智玩具购物网站:Fat Brain Toys
2017/11/03 全球购物
粉红色的鲸鱼:Vineyard Vines
2018/02/17 全球购物
巴黎卡诗加拿大官网:Kérastase加拿大
2018/11/12 全球购物
小学教研工作制度
2014/01/15 职场文书
党员自我批评与反省材料
2014/02/10 职场文书
追悼会主持词
2014/03/20 职场文书
一位农村小子的自荐信
2014/04/07 职场文书
求职个人评价范文
2014/04/09 职场文书
售后服务质量承诺书
2015/04/29 职场文书
学校运动会简讯
2015/07/20 职场文书
Python爬虫基础之初次使用scrapy爬虫实例
2021/06/26 Python
python通过新建环境安装tfx的问题
2022/05/20 Python