<?php


function contarLineasRecursivamente(string $directorio): int {
  $totalLineas = 0;
  $archivos = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator($directorio),
        RecursiveIteratorIterator::SELF_FIRST
  );
  
  $archivos->setMaxDepth(1);
 
  foreach ($archivos as $archivo) {
  	
  	$ext=$archivo->getExtension();
    if ( $archivo->isFile() && ($ext=='php' || $ext=='css' || $ext=='js') ) {
	
		print_r($archivo);
		echo '<hr>';
	
		  $lineas = file($archivo->getPathname(), FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
		  if ($lineas !== false) {
			$totalLineas += count($lineas);
		  }
    }
  }
  return $totalLineas;
}
 
function contarLineas($ruta){

	$totalLineas = 0;
  
  	$directorio=opendir($ruta);
	$archivos=readdir($directorio);
 
	while (($archivo = readdir($directorio)) !== false) {
	
		//echo '<p>archivo: '.$archivo.'</p>';
	
		if ( is_file($archivo) ) {
		
			$lineas = file($archivo, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
			
			if ($lineas !== false) {
				$cuantasLineas=count($lineas);
				$totalLineas += $cuantasLineas;
			}
			
			echo '<p>archivo: '.$archivo.' ('.$cuantasLineas.')</p>';
		  
		}
	
	}
	
	closedir($directorio);
  
	return $totalLineas;
  
}
 

//$rutaDirectorio = 'C:\Webs\PrototiposWeb7.4\sga-proxium-rest\contenidos';
$rutaDirectorio = 'C:\Webs\PrototiposWeb7.4\sga-proxium-rest';
$lineasTotales = contarLineasRecursivamente($rutaDirectorio);
 
echo "Número total de líneas en archivos de texto en '$rutaDirectorio': " . $lineasTotales . "\n";
 
?>