<?php /** * Created by PhpStorm. * User: Administrator * Date: 2017/4/27 * Time: 18:07 */ ini_set('max_execution_time',0); function read_dir(){ $dir_path = './contact/'; $dir_handle = opendir($dir_path); while( ($file = readdir($dir_handle)) !== FALSE ) { if ($file == '.' || $file == '..') continue; yield $file; } closedir($dir_handle); } function file_process($file){ $dir_path = './contact/'; $file_path = $dir_path.$file; $file_handle = fopen($file_path,'r'); while( ( $line = fgets($file_handle) ) !== FALSE ){ yield $line; } fclose($file_handle); } function process(){ $use_start = memory_get_usage(); $date = []; foreach(read_dir() as $file){ foreach(file_process($file) as $line){ $file_name = explode("-new",$file); $key = $file_name[0]; $date[$key] = []; $date[$key]['sum'] = 0; $date[$key]['exception'] = 0; $date[$key]['sum'] +=1; $line_data = explode(',',$line); if(trim($line_data[2]) == '无'){ $date[$key]['exception'] += 1; } } $percent = ($date[$key]['exception'] / $date[$key]['sum'] ) * 100; $date[$key]['percent'] = round($percent,2,PHP_ROUND_HALF_UP); $runing = memory_get_usage(); echo $runing-$use_start.' '; } } process();
yield 改写遍历目录方法,内存使用好低啊
最新推荐文章于 2021-04-06 10:38:38 发布