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+Html+缓存
Nov 25 PHP
php数据库密码的找回的步骤
Jan 12 PHP
浅析php与数据库代码开发规范
Aug 08 PHP
php中mysql连接和基本操作代码(快速测试使用,简单方便)
Apr 25 PHP
php 批量查询搜狗sogou代码分享
May 17 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
Oct 10 PHP
php+webSoket实现聊天室示例代码(附源码)
Feb 17 PHP
laravel 5.3中自定义加密服务的方案详解
May 09 PHP
php readfile()修改文件上传大小设置
Aug 11 PHP
PHP实现登录验证码校验功能
May 17 PHP
PHP文件操作实例总结【文件上传、下载、分页】
Dec 08 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
Feb 15 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小偷的核心程序
2007/04/09 PHP
PHP+MySQL 手工注入语句大全 推荐
2009/10/30 PHP
详解WordPress开发中wp_title()函数的用法
2016/01/07 PHP
详解PHP数据压缩、加解密(pack, unpack)
2016/12/17 PHP
PHP实现正则表达式分组捕获操作示例
2018/02/03 PHP
javascript网页关键字高亮代码
2008/07/30 Javascript
弹出层之1:JQuery.Boxy (一) 使用介绍
2011/10/06 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
2013/10/01 Javascript
js实现文本框选中的方法
2015/05/26 Javascript
javascript实现无缝上下滚动特效
2015/12/16 Javascript
jquery实现下拉框功能效果【实例代码】
2016/05/06 Javascript
Web Uploader文件上传插件使用详解
2016/05/10 Javascript
JavaScript数据结构之二叉树的遍历算法示例
2017/04/13 Javascript
用vue和node写的简易购物车实现
2017/04/25 Javascript
表格展示利器 Bootstrap Table实例代码
2017/09/06 Javascript
React Native预设占位placeholder的使用
2017/09/28 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
2017/12/15 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
2018/01/23 Javascript
JS实现图片旋转动画效果封装与使用示例
2018/07/09 Javascript
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
2018/09/01 Javascript
微信小程序实现留言功能
2018/10/31 Javascript
关于Vue Router中路由守卫的应用及在全局导航守卫中检查元字段的方法
2018/12/09 Javascript
Vue+element 解决浏览器自动填充记住的账号密码问题
2019/06/11 Javascript
浅谈vue限制文本框输入数字的正确姿势
2019/09/02 Javascript
[01:03:36]Ti4 循环赛第三日DK vs Titan
2014/07/12 DOTA
通过实例浅析Python对比C语言的编程思想差异
2015/08/30 Python
Python实现的快速排序算法详解
2017/08/01 Python
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
django xadmin中form_layout添加字段显示方式
2020/03/30 Python
python实现扫雷游戏的示例
2020/10/20 Python
如何使用html5与css3完成google涂鸦动画
2012/12/16 HTML / CSS
html5 canvas绘制矩形和圆形的实例代码
2016/06/16 HTML / CSS
离婚协议书的书写要求
2014/09/17 职场文书
一般党员对照检查材料
2014/09/24 职场文书
英雄儿女观后感
2015/06/09 职场文书
秋收起义观后感
2015/06/11 职场文书