Foros del Web » Programando para Internet » PHP »

Contar palabras de una cadena concatenada

Estas en el tema de Contar palabras de una cadena concatenada en el foro de PHP en Foros del Web. Hola Tengo una variable cadena que se forma concatenando otras palabras que provienen de campos de textos de un formulario. Lo que quiero hacer es ...
  #1 (permalink)  
Antiguo 10/02/2014, 09:56
 
Fecha de Ingreso: marzo-2008
Ubicación: Posadas Misiones Argentina
Mensajes: 480
Antigüedad: 16 años, 1 mes
Puntos: 1
Contar palabras de una cadena concatenada

Hola

Tengo una variable cadena que se forma concatenando otras palabras que provienen de campos de textos de un formulario. Lo que quiero hacer es contar las palabras de la variable cadena, pero no he encontrado una funcion que me cuente correctamente.

//asigno a variables
$problema = trim($_POST["problema"]);
$tipo = trim($_POST["tipo"]);
$polo1 = trim($_POST["polo1"]);
$polo2 = trim($_POST["polo2"]);
$pd1 = trim($_POST["dp1"]);
$pd2 = trim($_POST["dp2"]);
$via =trim($_POST["via"]);
$patologia =trim($_POST["patologia"]);
$par = trim($_POST["par"]);

//contatenar
$cadena = $problema." ".$tipo." ".$polo1." ".$polo2." ".$pd1." ".$pd2." ".$via." ".$patologia." ".$par;

Cita:
Probe con
$trozos= explode(" ", $cadena);
$numero= count($trozos);
Me cuenta mas palabras de las que hay
Luego con

Cita:
$numero=str_word_count($cadena);
Cuando la palabra tiene acento , me cuentas 1 palabra de mas o sea;
Ejemplo: corazón son 2 palabras en vez de uno.

Entonces que funcion usar o como puedo arreglar para que me cuenten la cantidad de palabras correctas. Gracias.
  #2 (permalink)  
Antiguo 10/02/2014, 10:22
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Contar palabras de una cadena concatenada

Por defecto, str_word_count no tiene buen soporte para cadenas en UTF-8, así que prueba esta función:

Código PHP:
Ver original
  1. function str_word_count_utf8($str) {
  2.     return count(preg_split('~[^\p{L}\p{N}\']+~u',$str));
  3. }
  4.  
  5. $numero = str_word_count_utf8($cadena);

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #3 (permalink)  
Antiguo 12/02/2014, 16:03
 
Fecha de Ingreso: marzo-2008
Ubicación: Posadas Misiones Argentina
Mensajes: 480
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Contar palabras de una cadena concatenada

Hola

Gracias por la respueta , pero la aplicacion me anduvo con
Cita:
$trozos= explode(" ", $cadena);
$numero= count($trozos);
Lo que pasa es que saque los espacios en blanco detras y adelante con la funcion trim, y tambien saque los espacios en blanco sobrantes que se encutran dentro de la cadena con preg_replace y expresiones regulares y ahi me anduvo.

Cita:
$busqueda=trim($criterio);
$busqueda = preg_replace("/ +/"," ",$busqueda);
Gracias.

Etiquetas: cadena, formulario, palabras, variable
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 12:25.