PHP递归统计系统中代码行数
时间:2022-07-27
本文章向大家介绍PHP递归统计系统中代码行数,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本文实例为大家分享了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;
以上就是本文的全部内容,希望对大家的学习有所帮助。
- HDUOJ----Coin Change
- Golang语言社区--列出目录和遍历目录的方法
- HDUOJ-------单词数
- insert导致的性能问题大排查(r11笔记第26天)
- NYOJ-----最少乘法次数
- nyOJ-----韩信点兵
- HDUOJ-----A == B ?
- 用Oracle的眼光来学习MySQL 5.7的sys(上)(r11笔记第24天)
- Golang下通过syscall调用win32的api
- NYOJ----蛇形填数
- Golang语言 syscall 例子
- 用Oracle的眼光来学习MySQL 5.7的sys(下)(r11笔记第25天)
- HDUOJ-----Climbing Worm
- 闪回原理测试(二)(r11笔记第23天)
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- 动态生成RDLC报表
- Angular 页面元素的DOM级别的删除过程
- 单例模式—四种写法详解
- Angular view container删除view实例的过程
- Angular自定义structural指令的实例化过程以及set方法的调用
- Angular structural指令host element的定位调试
- Import-Module ServerManager Import-Module : 未能加载指定的模块“ServerManager”,因为在任何模块目录中都没有找到有效模块文件..
- Angular自定义structural指令的一个例子
- 2020国庆节Angular structual指令学习笔记
- Delegate
- 图像增强领域大突破!1.66ms处理4K图像,港理工提出图像自适应的3DLUT
- 详解Android studio 动态fragment的用法
- Java fastjson解析json字符串实现过程解析
- SpringMVC系列 MVC设计模式介绍+ SpringMVC的作用及其基本使用+组件解析+注解解析
- Spring系列之事务的控制 注解实现+xml实现+事务的隔离等级