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.