Foros del Web » Programando para Internet » PHP »

Contar palabras

Estas en el tema de Contar palabras en el foro de PHP en Foros del Web. ¿No hay alguna forma de contar palabras de un txt?????? Por ejemplo, tengo un archivo (hola.txt) en el que hay un texto y sólo quiero ...
  #1 (permalink)  
Antiguo 14/08/2002, 17:54
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 15 años, 10 meses
Puntos: 29
Contar palabras

¿No hay alguna forma de contar palabras de un txt??????

Por ejemplo, tengo un archivo (hola.txt) en el que hay un texto y sólo quiero mostrar en una página php (hola.php) 40 palabras que hay en ese txt.

¿Cómo puedo hacerlo?

<center><hr size="1" color="blue" width="39%"><a href="http://www.ommadawn.es.vg" target="_blank"><font color="red">www.Ommadawn.es.vg[/CODE]</a><hr size="1" color="blue" width="39%">
  #2 (permalink)  
Antiguo 14/08/2002, 18:23
Nok
 
Fecha de Ingreso: abril-2001
Mensajes: 302
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Contar palabras

Hola, una solucion basica podria ser:

//Eliminamos espacios en blanco al principio y final
$texto = trim($tuTexto);
//Generas un array a partir del texto, usando como delimitador el espacio. Luego cuentas el nro de palabras.
$NroPalabras = count(explode(&quot; &quot;, $texto);

y listo. Puedes obtener mejores resultados usando split o preg_split, analizando el texto con expresiones regulares. Ya que este script, cuenta los signos de puntuacion como una palabra, y creo que si hay mas de un espacio entre 2 palabras, contara otra palabra mas.

Saludos

<img name="Firma" src="http://www.jpw.com.ar/FirmaNok.gif" border="0" usemap="#Mapa"><map name="Mapa"><area shape="rect" coords="0,43,174,60" href="http://www.jpw.com.ar/noktemplate"></map>
  #3 (permalink)  
Antiguo 14/08/2002, 18:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Re: Contar palabras

&lt;anecdota&gt;
Entro al post este y me acuerdo que ya en su dia respondi a la misma pregunta.
Uso el buscador jaja y me sale este mismo post con la respuesta de Nok
&lt;/anecdota&gt;

jaja pues q decir ... q eso q asi es un metodo.

Un saludo,
  #4 (permalink)  
Antiguo 14/08/2002, 18:48
Nok
 
Fecha de Ingreso: abril-2001
Mensajes: 302
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Contar palabras

Jajaja, esta vez te gané :Pamigo Cluster.
Aunque admito que deberia haber usado primero el buscador .

Saludos! :)

<img name="Firma" src="http://www.jpw.com.ar/FirmaNok.gif" border="0" usemap="#Mapa"><map name="Mapa"><area shape="rect" coords="0,43,174,60" href="http://www.jpw.com.ar/noktemplate"></map>
  #5 (permalink)  
Antiguo 15/08/2002, 16:34
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 15 años, 10 meses
Puntos: 29
Re: Contar palabras

Hola, tengo esto y me da el error en la línea que marco en negrita:

&lt;?
$fp = fopen(&quot;palabras.txt&quot;,&quot;r&quot;);
$texto = trim($fp);
$NroPalabras = count(explode(&quot; &quot;, $texto);
?&gt;
&lt;? echo $NroPalabras ?&gt;

El error:

Parse error: parse error in contar.php on line 4


<center><hr size="1" color="blue" width="39%"><a href="http://www.ommadawn.es.vg" target="_blank"><font color="red">www.Ommadawn.es.vg[/CODE]</a><hr size="1" color="blue" width="39%">
  #6 (permalink)  
Antiguo 15/08/2002, 17:19
Nok
 
Fecha de Ingreso: abril-2001
Mensajes: 302
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Contar palabras

Fijate bien, seguro que ya te diste cuenta. Te doy una ayuda, cuantos parentesis abres? y cuantos cierras?

Saludos

<img name="Firma" src="http://www.jpw.com.ar/FirmaNok.gif" border="0" usemap="#Mapa"><map name="Mapa"><area shape="rect" coords="0,43,174,60" href="http://www.jpw.com.ar/noktemplate"></map>
  #7 (permalink)  
Antiguo 15/08/2002, 21:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Re: Contar palabras

jajajaaj Nok esto ya parecen los juegos de entretenimiento que te ponen los diarios al final .. o como en sitio q voy a comer habitualmente que te ponen como &quot;individual&quot; (mantel) uno juegos de esos para que te entretengas mientras llega el pedido xDDD

Un saludo,
  #8 (permalink)  
Antiguo 15/08/2002, 21:27
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 889
Antigüedad: 16 años
Puntos: 4
Re: Contar palabras

jajajaja cierto Cluster!! Ayer en un restaurante mexicano me pusieron un mantel de papel de esos con un crucigrama y chorras de esas!! Es acojonante.. (con vuestro permiso).

PD: Al fin y al cabo, de errores uno acaba aprendiendo, pero si uno no razona sus propios errores, nunca termina de aprender..
  #9 (permalink)  
Antiguo 19/08/2002, 16:22
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 15 años, 10 meses
Puntos: 29
Re: Contar palabras

El error ya lo he corregido.

Ahora lo que quiero hacer es que muestre las palabras, no el número de palabras.

saludos.

<center><hr size="1" color="blue" width="39%"><a href="http://www.ommadawn.es.vg" target="_blank"><font color="red">www.Ommadawn.es.vg[/CODE]</a><hr size="1" color="blue" width="39%">
  #10 (permalink)  
Antiguo 19/08/2002, 16:48
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 15 años, 10 meses
Puntos: 29
Re: Contar palabras

Hola, no sé por qué pero este script sólo me pone el número 3. Es decir, que tengo 8 palabras y en vez de poner un 8 pone un 3, y si cambio el número de palabras también.

Código:
 &lt;?
$fp = fopen(&quot;palabras.txt&quot;,&quot;r&quot;);
$texto = trim($fp);
$NroPalabras = count(explode(&quot; &quot;, $texto));
?&gt;
&lt;? echo $NroPalabras ?&gt;
Qué pasa?

<center><hr size="1" color="blue" width="39%"><a href="http://www.ommadawn.es.vg" target="_blank"><font color="red">www.Ommadawn.es.vg[/CODE]</a><hr size="1" color="blue" width="39%">
  #11 (permalink)  
Antiguo 19/08/2002, 18:02
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 16 años, 1 mes
Puntos: 5
Re: Contar palabras

Si no recuerdo mal ..... creo que habia una funcion que contaba las palabras de un string, por lo que ... si habres el archivo, lo conviertes a un array, lees en cada fila cuantas palabras hay y las sumas tienes el total jeje te doy una pista empieza por la funcion file() para crear el array y luego centas cuantas lineas, haces un bucle para recorrer todas las lineas y asignas la fncion de contar palabras en una cadena y luego al final del bucle cojes el resultado

<table style="border:1px solid black"><tr><td><center>
<embed width="88" height="144" src="http://www.alaplaya.com/~epplestun/yo.swf"></td></td><font face=verdana size=1>Ivan Rodriguez el poder es [B]PHP</p></td></tr></table>
  #12 (permalink)  
Antiguo 19/08/2002, 19:20
Nok
 
Fecha de Ingreso: abril-2001
Mensajes: 302
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Contar palabras

Hola, bueno si tu script es exactamente este:
Código:
 &lt;?
$fp = fopen(&quot;palabras.txt&quot;,&quot;r&quot;);
$texto = trim($fp);
$NroPalabras = count(explode(&quot; &quot;, $texto));
?&gt;
&lt;? echo $NroPalabras ?&gt;
No creo que te funcione como quieres. Resulta que fopen solo &quot;abre&quot; un archivo y te devuelve un identificador, para leer el contenido del archivo tienes que utilizar la funcion fread(), o sea te quedaria algo asi:

Código:
 &lt;?
$fp = fopen(&quot;palabras.txt&quot;,&quot;r&quot;);
$texto = fread($fp, filesize(&quot;palabras.txt&quot;));
$texto = trim($texto  );
$NroPalabras = count(explode(&quot; &quot;, $texto));
?&gt;
&lt;? echo $NroPalabras ?&gt;
Para mas info sobre fread y fopen busca en el manual. Recuerda que luego lo tienes que cerrar al archivo.

Por ultimo si lo que quieres el mostrar las palabras lo unico que tienes que hacer es volcar el contenido del explode() en una variable (un array) y recorrerla con foreach() e ir mostrando cada palabra.

Saludos!.

<img name="Firma" src="http://www.jpw.com.ar/FirmaNok.gif" border="0" usemap="#Mapa"><map name="Mapa"><area shape="rect" coords="0,43,174,60" href="http://www.jpw.com.ar/noktemplate"></map>
  #13 (permalink)  
Antiguo 23/08/2002, 13:04
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 15 años, 10 meses
Puntos: 29
Re: Contar palabras

Hola, ahora que ya me cuenta las palabras me gustaría saber cómo utilizar el foreach() y que me muestre 40 palabras únicamente.


Gracias.

<center><hr size="1" color="blue" width="39%"><a href="http://www.ommadawn.es.vg" target="_blank"><font color="red">www.Ommadawn.es.vg[/CODE]</a><hr size="1" color="blue" width="39%">
  #14 (permalink)  
Antiguo 23/08/2002, 13:39
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 16 años, 2 meses
Puntos: 6
Re: Contar palabras

Como usar el foreach ???...
Ah pues esa parte nadie necesita explicartela, por que viene como parte de la documentacion de php y con ejemplos!!, que mas puedes perdir...La liga que habla del uso del foreach es la siguiente <a href='ir.asp?http://www.php.net/manual/en/control-structures.foreach.php' target='_blank'>http://www.php.net/manual/en/control-str...</a>

Asi que mijo vaya y haga su tarea..

Saludos!.
Mty. NL.
  #15 (permalink)  
Antiguo 23/08/2002, 18:44
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 15 años, 10 meses
Puntos: 29
Re: Contar palabras

Sigo pensando que el manual de php.net (inglés, español y lo que sea) es el peor explicado de toda la red. No entiendo nada, por eso pregunté, ahora entré a esa página, y entré en la de castellano y sigo igual que antes, sin saber usar el foreach.

<center><hr size="1" color="blue" width="39%"><a href="http://www.ommadawn.es.vg" target="_blank"><font color="red">www.Ommadawn.es.vg[/CODE]</a><hr size="1" color="blue" width="39%">
  #16 (permalink)  
Antiguo 24/08/2002, 11:16
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 15 años, 10 meses
Puntos: 29
Re: Contar palabras

YA lo he conseguido, me ha ayudado el bueno de jlmm (parece una peli de vaqueros).

El código es el siguiente (por si a alguien le hace falta):

Código:
&lt;?
$fp = fopen(&quot;archivo.txt&quot;,&quot;r&quot;);
$texto = fread($fp, filesize(&quot;archivo.txt&quot;));
$texto = trim($texto);
$palabras = explode(&quot; &quot;, $texto);
$x = 0;
while(trim($palabras[$x]) != &quot;&quot; &amp;&amp; $x &lt; 40)
{
echo $palabras[$x].&quot; &quot;;
$x++;
}
fclose($fp); 
?&gt;
<center><hr size="1" color="blue" width="39%"><a href="http://www.ommadawn.es.vg" target="_blank"><font color="red">www.Ommadawn.es.vg[/CODE]</a><hr size="1" color="blue" width="39%">
  #17 (permalink)  
Antiguo 24/08/2002, 11:45
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 889
Antigüedad: 16 años
Puntos: 4
Re: Contar palabras

jejeje plas plas plas .

En cuanto a contar en ves de palabras, caracteres, se puede utilizar el que respondió en un post más abajo Cluster, o tmb se me ocurrió éste:

$caracteres = 10;
$caracteres = $caracteres + 1;
$id = fopen(&quot;fgets.txt&quot;,&quot;r+&quot;);
$fp=fgets($id,$caracteres);
$texto = $fp.&quot;...&quot;;
echo $texto;
fclose($id);

Una aportación mínima antes de despedirme por unos días de vosotros.

Un placer!
  #18 (permalink)  
Antiguo 24/08/2002, 11:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Re: Contar palabras

jejej Chivi .. mmmm

una palabra es:

palabra palabra2

osease, un conjunto de caracteres separado por un espacio ...

Lo tuyo y lo mio solo discrimina &quot;caracteres&quot; no? ...

Un saludo, ;)
  #19 (permalink)  
Antiguo 24/08/2002, 12:17
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 889
Antigüedad: 16 años
Puntos: 4
Re: Contar palabras

claro claro! lo nuestro cuenta el conjunto de caracteres que forma una plabra, incluso el espacio, que en este caso es un caracter más :roto:

Por cierto, en el código que te cedió Chulo, ví que solo te cuenta las palabras referidas por un espacio. Osease, que si tienes: Palabra.Palabra2 te lo contaría como 1 solo palabra, pues no te hace la separación del punto .

(Espero no me falle ahora la vista .

Un saludo!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:00.