Ir para conteúdo
landerbadi

Listar todas palavras usadas em um texto

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites
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.

Compartilhar este post


Link para o post
Compartilhar em outros sites
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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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)

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Claudia França
      Estou com o moodle online e, preciso que os vídeos  "não listados" no youtube, não exibam menu dentro do meu ambiente, ao clicarem sobre ele com botão direito do mouse. Também preciso saber qual melhor <scritp> usar para limitar o numero de click por vídeo dentro do moodle.
        Como desativar que esse menu n apareça ?
       
       

       
      Limitar o video para um nuemro (X) de cliques.
       

    • Por Sonia M S Carvalho
      Tenho essa rotina :
       $("#btsubmit").click(function(){
              var dir = $("#ano").val(); 
             $.post("le_acervoLocal.php", {ano:dir } ,function(data_sub){
                  $('#mensagem').html(data_sub);
                  document.getElementById("ano").focus(); 
              });
          });
      Como faço pra saber se o programa está executando?
      Obrigada.
    • Por Lisbi
      Boa tarde
       
      Gente, to com um problema aqui! Eu fiz uns cadastro aqui direto no banco de dados, tenho um problema de acentuação que não sei como resolver! Se eu cadastrar direto no banco não tem problema na consulta e no resultado, se eu cadastrar pelo formulario de cadastro do site na hora da busca acontece o erro de acentuação! Como resolver isso de uma vez por todas! Ha um codigo pra ele ser utf8 de todo jeito! Eu não quero rescadastra  tudo dinovo pelo site, pq tenho um codigo abaixo que ele faz isso, mas ai no banco ja fica errado! Quero que funcione do mesmo jeito, português é português, não importa se é no banco ou no cadastro ou no site! Alguem pode me ajudar por favor;
       
      <? mysqli_set_charset ($con,'utf8'); ?> Obs: Esse codigo esta na pagina que exibe os resultados, não esta na pagina de cadastro, se eu colocar na pagina de cadastro da erro!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.