Contar el número de líneas y caracteres en archivo PHP

  • Por
Script que abre un archivo de texto y realiza una cuenta del número de líneas y de caracteres que tiene.
Vamos a continuar con nuestro manual de gestión de archivos con PHP con un sencillo script para realizar una cuenta del número de líneas y de caracteres de un archivo de texto. Es un script que puede resultarnos útil, por lo menos para practicar un poco con las funciones de manejo de archivos en PHP.

Como hemos dicho, se trata de hacer una cuenta del número de líneas de un archivo y además el número de caracteres que tiene. Para realizar esta cuenta debemos leer el archivo de texto línea a línea acumular uno por cada línea en una variable, así como acumular en otra variable el número de caracteres de cada línea.

El código sería el siguiente:

<?
//abro el archivo para lectura
$archivo = fopen ("miarchivo.txt", "r");

//inicializo una variable para llevar la cuenta de las líneas y los caracteres
$num_lineas = 0;
$caracteres = 0;

//Hago un bucle para recorrer el archivo línea a línea hasta el final del archivo
while (!feof ($archivo)) {
    //si extraigo una línea del archivo y no es false
    if ($linea = fgets($archivo)){
       //acumulo una en la variable número de líneas
       $num_lineas++;
       //acumulo el número de caracteres de esta línea
       $caracteres += strlen($linea);
    }
}
fclose ($archivo);
echo "
Líneas: " . $num_lineas;
echo "
Caracteres: " . $caracteres;
?>

El script está comentado, pero daremos unas explicaciones adicionales.

Primero abrimos el archivo para lectura. El fichero se llama "miarchivo.txt" y se supone que está en el mismo directorio que este script PHP.

Luego creamos un par de variables para llevar la cuenta de las líneas y de los caracteres.

Seguidamente hacemos un bucle para recorrer el archivo. El bucle iterará mientras que no se llegue al final del fichero. En cada iteración del bucle extraigo una línea, a la vez que compruebo que lo que he extraído tiene validez (Con fgets() se extrae una línea de texto y si hay un error la función devuelve false). Si se extrajo correctamente la línea de texto se acumula 1 en la variable que cuenta el número de líneas y se acumula el número de caracteres que tenga en la variable que cuenta los caracteres del archivo.

Una vez finalizado el bucle, porque se ha llegado al final del fichero, se muestran los contenidos de las variables con el número de líneas y caracteres.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

Alex

07/9/2006
Como puedo guardar en un archivo el contenido de una página visitada? Ej, Gardar en archivo el contenido de: http://www.desarrolloweb.com/articulos/comentario.php?id=2604

RESPUESTA

¿con el menú de Archivo - Guardar como? Los navegadores suelen tener una opción para guardar la página que están visualizando.

airam

28/2/2008
no entiendo porque al intentar abrir un archivo de texto con una matriz de 2 por 1; yo obtenga 4 como total de caracteres.

Ricardo

22/1/2012
¿Pueden ser archivos.doc?
Para contar caracteres y líneas, ¿puede ser un archivo de word?
La otra duda que tengo, ¿es eso con espacios y tabulaciones? ¿Puede ser contado sin ellos?

andres

11/3/2013
como hacer el pseudocodigo para ese codigo de lineas y caracteres
como seria el pseudocodigo para ese codigo de lineas y caracteres