Skip to content

Instantly share code, notes, and snippets.

@Zerquix18
Created October 31, 2015 01:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Zerquix18/79caee7c49aa320171da to your computer and use it in GitHub Desktop.
Save Zerquix18/79caee7c49aa320171da to your computer and use it in GitHub Desktop.
<?php
echo 'Programa para leer texto y procesar informacion de ella', "\n";
echo '-------------------------------------------------------', "\n";
$vocales =
$consonantes =
$numeros =
$caracteres =
$lista =
$resultados = [];
echo 'Introduzca el destino del texto:', "\n";
$ruta = trim(fgets(STDIN));
if( ! file_exists($ruta) || ! is_readable($ruta) )
exit("El fichero no existe o no pudo ser abierto\n");
echo 'Introduzca el texto a buscar:', "\n";
$buscar = trim( fgets(STDIN) );
$texto = file($ruta);
$encontrado = 0;
while( list(,$v) = each($texto) ) {
echo $v, "\n";
preg_match_all('/(a|e|i|o|u)/i', $v, $_vocales);
preg_match_all('/(q|w|r|t|y|p|s|d|f|g|h|j|k|l|z|x|c|v|b|n|m|ñ)/i', $v, $_consonantes);
preg_match_all('/[\d]/', $v, $_numeros);
preg_match_all('/[^aeiouqwrtypsdfghjklzxcvbnmñ\d]/i', $v, $_caracteres);
$vars = array('_consonantes', '_vocales', '_numeros', '_caracteres');
while( list(,$var) = each($vars) ) {
foreach(${$var}[0] as $a => $b)
${ substr($var, 1) }[] = $b;
}
if( strpos($v, $buscar) )
$encontrado++;
}
echo 'Se han encontrado ', count($texto), ' líneas en el texto', "\n";
echo 'Vocales: ', print_r($vocales, true), "\n";
echo 'Se encontraron ', count($vocales), ' vocales', "\n";
echo 'Consonantes: ', print_r($consonantes, true), "\n";
echo 'Se encontraron: ', count($consonantes), ' consonantes', "\n";
echo 'Números: ', print_r($numeros, true), "\n";
echo 'Se encontraron ', count($numeros), " números \n";
echo 'Caracteres: ', print_r($caracteres, true), "\n";
echo 'Se encontraron ', count($caracteres), ' caracteres', "\n";
$lista = explode(' ', preg_replace('/\s+/', ' ', implode($texto)) );
$lista = array_count_values($lista);
array_multisort($lista, SORT_DESC);
while( list($k,$v) = each($lista) ){
echo 'La cantidad de veces que se repite una palabra es ', $v, ' y la más repetida es ', $k, "\n";
break;
}
if( $encontrado )
echo 'Se encontró la palabra ', $buscar, ' y se repite ', $encontrado, ' veces', "\n";
else
echo 'No se encontró ', $buscar, "\n";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment