Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/02/2014, 20:34
JJMontreux
 
Fecha de Ingreso: febrero-2014
Mensajes: 4
Antigüedad: 10 años, 8 meses
Puntos: 0
Pregunta Contar palabras de un fichero .txt con PHP

Ante todo, saludos.

Os comento que sé perfectamente que hay una respuesta a una [URL="http://www.forosdelweb.com/f18/contar-palabras-archivo-txt-497915/"]cuestión similar[/URL] en el foro, pero os aclaro que por muy buena que sea, no me vale. Obviamente, la he probado y funciona, pero necesito otro método.

Tal y como especifico en el título, necesito contar las palabras de un fichero .txt que abro previamente con fopen. El código que estoy probando, es el siguiente:

--------------------------------------------------------------------------------------------------------

<?php
if ($opcion == "Contar") {
$id_fichero1=@fopen($fichero1, "r") // Abrimos el fichero en modo lectura
or die('<b><i>El fichero "fichero_test.txt" no se ha podido abrir.</i></b><br />');
echo '<b><i>El fichero "fichero_test.txt" existe y está abierto en modo lectura ("r").</i></b><br />';

echo '<br /><br />';
echo '<h2><u>Contar las palabras del fichero</u></h2>'; // Título que antecede al contenido del fichero

// Método largo para contar las palabras de un fichero.
// Usamos rewind para rebobinar el puntero al principio del fichero y el while con !feof para ir hasta su final. Así lo leemos completamente.
rewind($id_fichero1);
while (!feof($id_fichero1)){
$linea = fgets($id_fichero1);
$contador_pal = count(explode(" ", $linea));
}
echo "<b><i>El fichero contiene:</i></b><br /><br />";
echo "$contador_pal palabras";
fclose($id_fichero1); // Cerramos el fichero
}
?>



---------------------------------------------------------------------------------------------------------

El problema es que así no me cuenta más que una palabra. No acabo de comprender qué es lo que pasa. Lo que estoy haciendo es recoger cada línea del fichero y contar las palabras separadas por espacios en blanco con explode. Pero no funciona. ¿Alguien más experimentado me puede ayudar a corregirlo?

Gracias por vuestra ayuda.