str_split nos permite dada una cadena de texto, obtener una matriz cuyos valores sean cada carácter de la cadena, e incluso poner un límite numérico para que por ejemplo, cada elemento de la matriz contenga N caracteres.
Su sentencia es:
$matriz = str_split($cadena, ($limite));
?>
Cadena es la cadena de texto que vamos a dividir en la matriz.
Límite es el número máximo de caracteres que puedo contener cada elemento de la matriz. Es opcional.
Ejemplo
$cadena = "Texto";
$matriz = str_split($cadena, 2);
foreach($matriz as $clave)
echo $clave . "
";
?>
Devuelve:
Te
xt
o
Si no estuviera el 2 como parámetro, devolvería:
T
e
x
t
o
str_word_count nos permite contar las palabras que existen en una cadena, separadas por cualquier caracter que no sea una letra. Por ejemplo, en la frase: OLPC tiene 3 años, diria que solo existen 3 palabras, OLPC, tiene, y años. Tambien podriamos hacer la prueba con la frase: OLPC t1ene 3 años, diciendo que tendria 4 palabras, OLPC, t, ene, y años. Es decir, cualquier caracter que no sea una letra, actúa como separador entre palabras, aunque podemos añadir excepciones.
Su sentencia es:
$resultado = str_word_count($cadena, ($formato, ($lista)))
?>
Cadena es la cadena de texto en la cual vamos a contar el número de palabras existentes.
Formato es un número del cero al dos, que nos permite personalizar el resultado. Si ponemos un 0, devuelve el número de palabras (por defecto), si ponemos un 1, devuelve un array cuyos elementos sean las palabras encontradas, y si ponemos un 2, devuelve un array cuyos elementos sean las palabras encontradas y cuyo índice es la posición de la letra de cada palabra.
Lista es la lista de caracteres que queremos excepcionar para que no sean separadores de palabras. Por defecto son todos, salvo las letras mayúsculas y minúsculas (incluyendo la Ñ y las vocales con acentos)
Ejemplo
$cadena = "OLPC tiene 3 años";
$resultado1 = str_word_count($cadena);
//Simplemente obtenemos el número de palabras
$resultado2 = str_word_count($cadena, 1);
//Obtenemos cada palabra en un elemento del array resultado2
$resultado3 = str_word_count($cadena, 2, "3");
//Hacemos que '3' se convierta en una excepcion (osea que hay 4 palabras) y cada elemento del array pertenece a cada palabra de la cadena, cuyos indices son la posicion de la primera letra de cada palabra
echo $resultado1 . "
";
foreach($resultado2 as $clave => $valor)
echo "Clave: $clave y Valor: $valor
";
echo "
";
foreach($resultado3 as $clave => $valor)
echo "Clave: $clave y Valor: $valor
";
?>
Nos devuelve:
3
Clave: 0 y Valor: OLPC
Clave: 1 y Valor: tiene
Clave: 2 y Valor: años
Clave: 0 y Valor: OLPC
Clave: 5 y Valor: tiene
Clave: 11 y Valor: 3
Clave: 13 y Valor: años
strcasecmp nos permite comparar el primer caracter de dos cadenas de texto, y obtener la diferencia de posiciones (respecto la tabla ASCII) que hay entre ellas. No distingue entre mayúsculas o minúsculas en el caso de las letras. En caso de que la cadena sea de más de un carácter y el primer carácter sea igual, pasará al segundo carácter (lo veremos más claro con el ejemplo)
Su sentencia es:
$resultado = strcasecmp($cadena1, $cadena2);
?>
Cadena1 y Cadena2 son las cadenas de texto, cuyos primeros caracteres se van a comparar.
Ejemplo
$resultado = strcasecmp("a", "b");
//Se resta el primero menos el segundo, por eso el resultado saldrá negativo
echo $resultado . "
";
$resultado2 = strcasecmp("hola", "Hona");
//Aqui, como h es igual a H, pasa a comprobar el siguiente caracter, y como también es igual, pasa a comprobar el tercero, entre 'l' y 'n'. Podemos observar que hay una diferencia de 2 posiciones entre ambos
echo $resultado2 . "
";
$resultado3 = strcasecmp("=", "-");
echo $resultado3 . "
";
//Ahora, pasaremos los caracteres = y - a ASCII y los restaremos, para ver que nos da el mismo resultado:
$otro = ord("=") - ord("-");
echo $otro;
?>
Nos devuelve:
-1
2
16
16
strchr y strstr (usaré strstr para los ejemplos pero funcionan de manera idéntica) nos permiten obtener una cadena de texto posterior o anterior a un separador.
Su sentencia es:
$resultado = strstr($cadena, $separador, ($bool));
?>
Cadena es la cadena de texto que vamos a dividir.
Separador es la cadena de texto que nos permitirá dividir la otra cadena de texto entrante.
Bool es un valor, que puede ser true o false. Por defecto está en false. Es opcional.
Nota: el último parámetro solo funciona a partir de la versión de PHP 5.3.0
Ejemplo
$email = 'direccion@ejemplo.com';
$dominio = strchr($email, '@');
echo $dominio . "
";
$usuario = strchr($email, '@', true);
echo $usuario;
?>
Nos devuelve:
@ejemplo.com
direccion
strcmp y strcoll funcionan de una manera parecida a strcasecmp. Devuelve 0 si las cadenas son iguales. Devuelve 1 si la el carácter de la segunda es mayor (en la table ascii) que el de la primera cadena, y -1 en caso contrario.
Su sentencia es:
$resultado = strcmp($cadena1, $cadena2);
?>
Cadena1 y Cadena2 serán las cadenas cuyos primeros caracteres se compararan. Es sensible a mayúsculas y minúsculas, al contrario que strcasecmp.
Ejemplo
$resultado = strcmp("a", "d");
echo $resultado . "
";
$resultado2 = strcmp("z", "a");
echo $resultado2 . "
";
$resultado3 = strcmp("a", "C");
echo $resultado3 . "
";
?>
Nos devuelve:
-1
1
1
Yo seguí esta página que encontre y me fue de maravilla (al final consulte también el manual oficial).
http://www.jordigirones.com/510-contar-palabras-con-php.html