Separar palavras de uma string no PHP
Dica publicada em PHP / Expressões Regulares
Separar palavras de uma string no PHP
É muito pra lá de comum em formulários web recebermos um campo onde a variável é uma frase.
Dizendo em termos de programação, uma frase seria conjuntos de caracteres separados por algum(ns) caractere(s).
No caso das frases usadas por nós humanos (sic), uma frase é formada por conjunto de letras separados por um caractere branco. No caso de datas, por exemplo '14/09/1970', a barrinha '/' separa os conjuntos de números.
Como se percebe, a 'frase' que se trabalha em programação é mais geral do que a nossa linguística. E nesse aspecto, um modo de separar esses conjuntos de caracteres é uma "necessidade básica" de todo programador.
Para fazer isso em PHP, considere a string '$frase'
Para separar cada palavra dessa variável, usamos a função explode():
e assim, cada célula de $array guardará cada palavra da frase. Exemplo:
Explicando o explode(): essa função pega uma delimitador (que pode ser um ou mais caracteres), separa a string de acordo com esse delimitador e retorna para uma string onde palavra separada fica numa célula sozinha. Sua forma é:
$array=explode($delimitador,$string);
No exemplo, o delimitador foi o caractere branco (o mais requisitado por aí). No caso da data, teríamos:
Mas o explode é mais geral que isso. Pegue a string:
Percebam que tem o conjunto '123' se repetindo nela. Esse pode ser o delimitador da string.
e teremos:
Podem verificar.
Mas para trabalhar decentemente com essa separação de 'frases', precisamos saber quantas palavras há nela. Para isso fazemos:
Que imprimirá:
3478
96fcsd7yc
vfqwe4jh23
e312
Aqui a função count() conta quantas células tem em $array e retorna esse número.
Não foi uma coisa rápida, mas espero que os iniciantes peguem esses conceitos, para daqui pra frente conseguirem caminhar um bom trecho da estrada sozinhos.
Até a próxima dica.
Dizendo em termos de programação, uma frase seria conjuntos de caracteres separados por algum(ns) caractere(s).
No caso das frases usadas por nós humanos (sic), uma frase é formada por conjunto de letras separados por um caractere branco. No caso de datas, por exemplo '14/09/1970', a barrinha '/' separa os conjuntos de números.
Como se percebe, a 'frase' que se trabalha em programação é mais geral do que a nossa linguística. E nesse aspecto, um modo de separar esses conjuntos de caracteres é uma "necessidade básica" de todo programador.
Para fazer isso em PHP, considere a string '$frase'
$frase="O rato roeu a roupa do rei de roma.";
Para separar cada palavra dessa variável, usamos a função explode():
$array=explode(" ",$frase);
e assim, cada célula de $array guardará cada palavra da frase. Exemplo:
print $array[3]; // Imprimirá a palavra 'roeu'.
Explicando o explode(): essa função pega uma delimitador (que pode ser um ou mais caracteres), separa a string de acordo com esse delimitador e retorna para uma string onde palavra separada fica numa célula sozinha. Sua forma é:
$array=explode($delimitador,$string);
No exemplo, o delimitador foi o caractere branco (o mais requisitado por aí). No caso da data, teríamos:
$data='14/09/1970';
$array=explode("/",$data);
print $array[2]; // Imprimirá '09'.
$array=explode("/",$data);
print $array[2]; // Imprimirá '09'.
Mas o explode é mais geral que isso. Pegue a string:
$string="347812396fcsd7yc123vfqwe4jh23123e312";
Percebam que tem o conjunto '123' se repetindo nela. Esse pode ser o delimitador da string.
$array=explode("123",$string);
e teremos:
print $array[0]; // Imprime ''3478".
print $array[1]; // Imprime ''96fcsd7yc".
print $array[2]; // Imprime ''vfqwe4jh23".
print $array[3]; // Imprime ''e312".
print $array[1]; // Imprime ''96fcsd7yc".
print $array[2]; // Imprime ''vfqwe4jh23".
print $array[3]; // Imprime ''e312".
Podem verificar.
Mas para trabalhar decentemente com essa separação de 'frases', precisamos saber quantas palavras há nela. Para isso fazemos:
$array=explode("123",$string);
$n_palavras=count($array);
for($i=0 ; $i < $n_palavras ; $i++ ){
print "$array[$i] \n";
}
$n_palavras=count($array);
for($i=0 ; $i < $n_palavras ; $i++ ){
print "$array[$i] \n";
}
Que imprimirá:
3478
96fcsd7yc
vfqwe4jh23
e312
Aqui a função count() conta quantas células tem em $array e retorna esse número.
Não foi uma coisa rápida, mas espero que os iniciantes peguem esses conceitos, para daqui pra frente conseguirem caminhar um bom trecho da estrada sozinhos.
Até a próxima dica.
$palavras = explode( ' ', $frase );
foreach( $palavras as $palavra )
{
echo "\n" . '<br />' . $palavra;
}