Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola pessoal.
Existe alguma funçao do php que eu consiga fazer uma lista de todas as palavras usada em um texto? (Obs.: sem repetição)
Exemplo:
$texto = "minha casa é mais bonita que sua casa"
Gostaria que o php fizesse um listas de todas as palavras usadas sem repetiçao. Ficando assim:
bonita
casa
é
mais
minha
que
sua
Alguém pode me ajudar.
>
5 horas atrás, Frank K Hosaka disse:
Eu não consegui:
<?php
$texto="minha casa é mais bonita que sua casa";
$vetor=explode(" ",$texto);
sort($vetor);
$anterior="";
foreach($vetor as $palavra){
if($palavra!=$anterior){echo $palavra.",";}
$anterior=$palavra;}
// resultado: bonita,casa,mais,minha,que,sua,é,
Não sei como colocar a palavra "é" depois de "casa". Espero que você tenha mais sorte.
Olá Frank. Obrigado pela ajuda. Testei aqui o código. Está perto do que quero. Sö que ele está listado palavras repetidas e as pontuações. Preciso que ele liste somente as palavras usadas no texto sem repetições e sem pontuações. Por exemplo: se a palavra "amor" aparecer quatro vezes no texto eu quero que ele liste apenas uma. Pois preciso fazer uma lista de todas as palavras usadas no texto.
>
43 minutos atrás, landerbadi disse:
Sö que ele está listado palavras repetidas e as pontuações.
Remova os pontos, virgulas etc, esses usando preg_replace antes de criar o array $vetor.
>
48 minutos atrás, landerbadi disse:
listado palavras repetidas
Depois de criar o array $vetor execute array_unique para remover índices duplicados.
Tentei usar preg_replace, mas ao invés dele tirar o ponto, ele tirou a frase inteira! Não sei como ajudá-lo.
<?php
$string="Geraldo, a mãe disse que: minha casa é mais bonita que sua casa.";
$patterns=array();
$patterns[0]='/./';
$replacements=array();
$replacements[0]='';
$novo=preg_replace($patterns,$replacements,$string);
echo $novo;
// resultado: nada!
Ao invés de preg_replace usei str_replace bem como array_unique e sort. A sequencia é essa: Maiúsculas, minúsculas e acentuadas:
<?php
$texto="Geraldo, a mãe disse que: minha casa é mais bonita sua casa. Que coisa!";
$indesejaveis=[",",":",".","!"];
foreach($indesejaveis as $indesejavel){
$texto=str_replace($indesejavel,"",$texto);}
$vetor=array_unique(explode(" ",$texto));
sort($vetor);
var_dump($vetor);
//resultado:
C:\wamp64\www\astudy\index.php:8:
array (size=13)
0 => string 'Geraldo' (length=7)
1 => string 'Que' (length=3)
2 => string 'a' (length=1)
3 => string 'bonita' (length=6)
4 => string 'casa' (length=4)
5 => string 'coisa' (length=5)
6 => string 'disse' (length=5)
7 => string 'mais' (length=4)
8 => string 'minha' (length=5)
9 => string 'mãe' (length=4)
10 => string 'que' (length=3)
11 => string 'sua' (length=3)
12 => string 'é' (length=2)
Eu não consegui:
// resultado: bonita,casa,mais,minha,que,sua,é,
Não sei como colocar a palavra "é" depois de "casa". Espero que você tenha mais sorte.