您的位置:首页 > 编程学习 > > 正文

php递归实现(PHP递归统计系统中代码行数)

更多 时间:2021-10-19 06:45:13 类别:编程学习 浏览量:279

php递归实现

PHP递归统计系统中代码行数

本文实例为大家分享了PHP递归统计系统中代码行数的具体代码,供大家参考,具体内容如下

1、统计代码行数,必然用到的两个关键的知识点:函数递归以及文件读取。

函数递归无非就是在函数的代码中调用本身的函数名,以此形成递归循环

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • function A($param){
  •   if('condition')
  •     A($param_son);
  •   else
  •     return $result;
  • }
  • 在文件读取中,有很多读取方式,采用了file()读取,按行读取,形成一个数组。

  • ?
  • 1
  • $file_open = file($file);
  • 2、完整的代码

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • <?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;
  • 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。

    原文链接:https://blog.csdn.net/kissxia/article/details/49181625

    您可能感兴趣