Contar palabras en una cadena con PHP str_word_count()

Vamos a ver ejemplos para contar las palabras en una cadena con PHP,  la función de PHP que voy a usar para realizar el recuento es str_word_count().

La definición de la función es la siguiente:

Devuelve información sobre las palabras utilizadas en un string

Sintaxis PHP str_word_count()

Veamos cual es la sintaxis de esta función extraída de su web oficial:

str_word_count ( string [, formato = 0 [, string_charlist ]] )

Os explico los parámetros:

  • string (Obligatorio): Cadena donde se realizará la búsqueda.
  • formato (Opcional): Formato de salida de la función:
    0: Devuelve el nº de palabras.
    1: Devuelve un array con índice numérico con las palabras encontradas.
    2: Devuelve un array asociativo.
  • string_charlist (Opcional): Lista de caracteres que cuentan como una palabra.

str_word_count() devuelve el número de palabras en un string.

Si no se especifica el valor formato la función devolverá un entero con el número de palabras, en caso contrario delvoverá un array asociativo dependiendo del formato elegido.

Es importante aclarar que solo reconoce caracteres alfabéticos y no alfanuméricos, si la palabra es an4re, lo contará como an y re, 2 palabras en vez de una.

Ejemplo de PHP str_word_count() para contar las palabras en una cadena

Vamos a ver en este ejemplo que he preparado cómo contar las palabras que hay en una cadena de texto:

$cadena = "Esto es una prueba para contar palabras";
echo "$cadena";

//saco el número de palabras con el parámtero '0'
echo "Hay ".str_word_count($cadena, 0). " palabras en la cadena '$cadena'";

//guardo las palabras en un array 
$array_cadena = str_word_count($cadena, 1);
//saco cada elemento del array 
foreach ($array_cadena as $palabra) {
 echo $palabra . " ";
 }

Os explico el código del ejemplo:

  • Declaramos una cadena de texto y sacamos con echo su valor por pantalla.
  • Muestro por pantalla el número de palabras en la cadena usando el parámetro ‘0’.
  • Guardo las palabras de la cadena en un array asociativo con el parámetro ‘1’.
  • Con la función foreach() recorro el array y saco las palabras por pantalla.

Si quisiéramos contar palabras con números en ellas este sería el código:

// metemos el 3 en mitad de la plabra
$cadena = "Esto3palabra";
//decimos que el 3 tambien cuenta.
$array_cadena = str_word_count($cadena, 1, '3');

Explico el código:

  • Se inserta el número 3 en la cadena
  • Señalamos que el 3 ccuenta omo palabra, si no lo hacemos la función nos devolvería 2 palabras, ‘Esto’ y ‘palabra’.
compartir
Publicado por
Aner Barrena