Foros del Web » Programando para Internet » PHP »

Contar palabra en string

Estas en el tema de Contar palabra en string en el foro de PHP en Foros del Web. Hola a todos, ojala me puedan hechar una ayudadita. Necesito una funcion que cuente la cantidad de veces que se repite una palabra en un ...
  #1 (permalink)  
Antiguo 24/04/2008, 02:23
Avatar de ramzax200  
Fecha de Ingreso: noviembre-2003
Mensajes: 172
Antigüedad: 20 años, 5 meses
Puntos: 0
Contar palabra en string

Hola a todos, ojala me puedan hechar una ayudadita.

Necesito una funcion que cuente la cantidad de veces que se repite una palabra en un string.

Ej:

En el parque sucedio algo y el parque se seco. El parque descansa en paz.


Palabra "parque" 3 veces.
  #2 (permalink)  
Antiguo 24/04/2008, 02:41
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Re: Contar palabra en string

prueba con esto (hecho `onthefly`)


Código PHP:
function contar_palabras($cadena,$palabra) {
$i=0;

while(
$cadena strstr($cadena,$palabra)) {
$cadena=substr($cadena,1);
$i++;
}

return 
$i

¿Que hace?
strstr devuelve una cadena a partir de la primera ocurrencia de palabra o caracter
substr devuelve una cadena a partir de la posicion.

Más info de ambas:
StrStr
SubStr

La idea es simple, buscas que exista palabra, despues, te quedas con la frase a partir de la primera ocurrencia de palabra, luego, le quitas la primera letra, contador ++, y vuelves a buscar, etc


Ejemplo:

contar_palabras("Mi mama me mima mucho mama mima :)","mama");


strstr->$cadena pasaria a ser "mama me mima mucho mama mima :)";
substr->$cadena pasaria a ser "ama me mima mucho mama mima :)";
i=1
strstr->$cadena pasaria a ser "mama mima :)";
substr->$cadena pasaria a ser "ama mima :)";
i=2;
strstr-> FALSE, por lo cual no entra al bucle.


Resultado= 2 :)
  #3 (permalink)  
Antiguo 24/04/2008, 12:26
Avatar de ramzax200  
Fecha de Ingreso: noviembre-2003
Mensajes: 172
Antigüedad: 20 años, 5 meses
Puntos: 0
Re: Contar palabra en string

buen truco ese de quitarle una letra, la probare, muchas gracias.
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 18:49.