Ir para conteúdo
Fórum Script Brasil
  • 0

Tratamento de texto php


jose_claudio

Pergunta

Olá pessoal, estou cursando informática no site EAD, http://ead.educacao.pe.gov.br/, iniciando em PHP. Estou tentando construir um programa que trate de texto, por ex. um textarea onde se escreve ou cola um texto, e ao enviar, ele trata o texto, dando o número de palavras com mais de duas letras, o numero de palavras com uma letra, o numero total de letras, de virgulas, pontos, e outros caracteres especiais, numero de ocorrências por palavras, organizando pelas mais repetidas, ordem alfabética, numero de espaços, coisa desse tipo. Ainda estou pensando o que mais o programa deverá fazer. Quero usar PHP, Javascript, Html... Estou pegando partes do quebra cabeça, e adaptando para o projeto.

Peguei um código pronto que conta somente o numero palavras, ignorando os espaços e os caracteres especiais, mais não estou conseguindo imprimi-los, para daí contar o numero de palavras, e letras. o máximo que consegui, foi mostrar quantas palavras contem no texto.

<html >

<body>

<?php

// esse código eu peguei pronto .

error_reporting(E_ALL ^ E_NOTICE);// coloco isso porque é muito chato o erro de variável indefinida enquanto se estar testando o código.

$texto = "auaa , vv . : hjklh , h; ; . tfgh";

/* Separar cada palavra por espaços (raw, sem filtro) */

$palavras_raw = explode(" ", $texto);

// Array de caracteres para serem removidos

$ignorar =

[".", ",", "!", ";", ":", "(", ")", "{", "}", "[", "]", "<", ">",

"?", "|", "\\", "/"];

// Array para as palavras tratadas.

$palavrasTratadas = array();

/* Criar uma nova array de palavras, agora tratadas */

$palavras_raw_count = count($palavras_raw);

for ($i=0;$i<$palavras_raw_count;++$i) {

$palavraAtual = $palavras_raw[$i];

$palavraAtual = trim($palavraAtual);

if (!empty($palavraAtual)) {

$palavraTratada = str_replace($ignorar, "", $palavraAtual);

$palavraTratada = strtolower($palavraTratada);

if (!empty($palavraTratada)) {

$palavrasTratadas[$palavraTratada]++;

}

}

}

$palavra = $palavrasTratadas;

$conta = count($palavra);

// Organizar pela ordem de mais ocorrências.

arsort($palavrasTratadas);

// DEBUG

print_r($palavrasTratadas);echo"<br>";

echo "<b>Na Frase - </b>$texto<br>";

echo"<b>Temos:</b><br>";

echo "$conta - palavras.<br>";

?>

</body>

</html>

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Você está estudando não deveria desenvolver o código usando as funções que foram passadas no curso ao invés de copiar pronto *-* ?

bom de todo modo segue uma parte para você seguir adiante:

marquei os links das funções utilizadas.

 
<?php
 
//http://php.net/manual/pt_BR/function.str-replace.php
//http://php.net/manual/en/function.count.php
//http://php.net/manual/pt_BR/function.explode.php
//http://php.net/manual/pt_BR/function.strlen.ph
//http://php.net/manual/pt_BR/book.array.php

$texto="#teste# de < & contagem de palavras de teste <";
echo "Texto: $texto<br><br>";
 
//quantas palavras existem no texto;
$palavras=explode(" ", $texto);
$tamanho=count($palavras);
echo "Total de palavras: $tamanho<br>";
 
//quantos caracteres exitem no texto com espaço e tudo mais.
$tamanho1=strlen($texto);
echo "Total de caracteres: $tamanho1<br>";
 
//quantos caracteres existem no texto ignorando espaços em branco;
$semespaco=str_replace(" ","",$texto);
$tamanho2=strlen($semespaco);
echo "Total de caracteres ignorando os espaços; $tamanho2";
 
//remover caracteres especiais
$semcaracteresespeciais = str_replace(array('<', '>', '&', '{', '}', '*', '#'), array(' '), $texto);
echo "<br><br>Texto sem caracteres especiais:<br>$semcaracteresespeciais";
 
$tamanho3=strlen($semcaracteresespeciais);
echo "<br>Total de palavras sem caracteres especiais: $tamanho3<br><br>";
 
//http://php.net/manual/pt_BR/control-structures.foreach.php
 
$palavras = $texto;
$convertearray = explode(" ",$palavras);
foreach($convertearray as $conta){
if(isset($contei[$conta]))
$contei[$conta]++;
else
$contei[$conta]=1;
}
foreach($contei as $fim => $conta)
echo $fim.": ".$conta."<br>";
?>
Editado por Donnerak
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...